A3447 | 表达式的值
来源NOIP普及组 / 2011
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
对于1位二进制变量定义两种运算:
运算的优先级是:
1. 先计算括号内的,再计算括号外的。
2. “×”运算优先于“⊕”运算,即计算表达式时,先计算×运算,再计算⊕运算。
例如:计算表达式A⊕B×C时,先计算B×C,其结果再与A做⊕运算。
现给定一个未完成的表达式,例如_+(_*_),请你在横线处填入数字0或者1,请问有多少种填法可以使得表达式的值为0。
运算的优先级是:
1. 先计算括号内的,再计算括号外的。
2. “×”运算优先于“⊕”运算,即计算表达式时,先计算×运算,再计算⊕运算。
例如:计算表达式A⊕B×C时,先计算B×C,其结果再与A做⊕运算。
现给定一个未完成的表达式,例如_+(_*_),请你在横线处填入数字0或者1,请问有多少种填法可以使得表达式的值为0。
输入格式
每组输入数据的第1行为一个整数L,表示给定的表达式中除去横线外的运算符和括号的个数。
第2行为一个字符串包含L个字符,其中只包含‘(’、‘)’、‘+’、‘*’这4种字符,其中‘(’、‘)’是左右括号,‘+’、‘*’分别表示前面定义的运算符“⊕”和“×”。这行字符按顺序给出了给定表达式中除去变量外的运算符和括号。
数据规模:
对于20%的数据有0≤L≤10;
对于50%的数据有0≤L≤1,000;
对于70%的数据有0≤L≤10,000;
对于100%的数据有0≤
第2行为一个字符串包含L个字符,其中只包含‘(’、‘)’、‘+’、‘*’这4种字符,其中‘(’、‘)’是左右括号,‘+’、‘*’分别表示前面定义的运算符“⊕”和“×”。这行字符按顺序给出了给定表达式中除去变量外的运算符和括号。
数据规模:
对于20%的数据有0≤L≤10;
对于50%的数据有0≤L≤1,000;
对于70%的数据有0≤L≤10,000;
对于100%的数据有0≤
输出格式
每组输出共1行。包含一个整数,即所有的方案数。注意:这个数可能会很大,请输出方案数对10007取模后的结果。
下面是对样例数据的解释:
给定的表达式包括横线字符之后为:_+(_*_)
在横线位置填入(0、0、0)、(0、1、0)、(0、0、1) 时,表达式的值均为0 ,所以共有3种填法。
下面是对样例数据的解释:
给定的表达式包括横线字符之后为:_+(_*_)
在横线位置填入(0、0、0)、(0、1、0)、(0、0、1) 时,表达式的值均为0 ,所以共有3种填法。
输入输出样例
输入 #1
4 +(*)
输出 #1
3
暂无题解
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?
提交通过
评测结果:Accepted