NOIP 2011 表达式的值
来源:互联网 发布:地形图矢量化软件 编辑:程序博客网 时间:2024/05/21 04:22
题目描述
对于1 位二进制变量定义两种运算:
运算的优先级是:
先计算括号内的,再计算括号外的。
“× ”运算优先于“⊕”运算,即计算表达式时,先计算× 运算,再计算⊕运算。例如:计算表达式A⊕B × C时,先计算 B × C,其结果再与 A 做⊕运算。
现给定一个未完成的表达式,例如+(*_),请你在横线处填入数字0 或者1 ,请问有多少种填法可以使得表达式的值为0 。
【题目分析】
递推
【代码】
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int mod=10007;struct node{int one,zer;}unit,next;node num[100010];char sym[100010],s[100010];int i,cnt=0,p=0,l=0;void push(){sym[++p]=s[i];}void pop(){ switch (sym[p--]) { case'+': next.one=(num[p].one*num[p+1].one+num[p].zer*num[p+1].one+num[p].one*num[p+1].zer)%mod; next.zer=(num[p].zer*num[p+1].zer)%mod; num[p]=next; break; case'*': next.zer=(num[p].zer*num[p+1].zer+num[p].zer*num[p+1].one+num[p].one*num[p+1].zer)%mod; next.one=(num[p].one*num[p+1].one)%mod; num[p]=next; break; }}bool can(){ if (s[i]=='+'&&sym[p]!='(') return 1; if (s[i]=='*'&&sym[p]!='('&&sym[p]!='+') return 1; return false;}int main(){ unit.one=unit.zer=1; scanf("%d",&l); scanf("%s",s+1); sym[++p]='('; l++; s[l]=')';// printf("%s",s+1); i=1; while (i<=l) { while (s[i]=='(') {push(); i++;} num[p]=unit; do { if (s[i]==')') { while (sym[p]!='(') pop(); p--; num[p]=num[p+1]; } else { while (can()) pop(); push(); } i++; }while(i<=l&&s[i-1]==')'); } printf("%d\n",num[0].zer);}
0 0
- NOIP 2011 表达式的值
- [普及] NOIP 2011 表达式的值
- noip的等价表达式
- 2011NOIP普级组第四题--表达式的值(摘自洛谷题解)
- 2013NOIP普级组第二题--表达式的值(参考洛谷题解)
- NOIP-2009 表达式输出
- NOIP 2005 等价表达式
- NOIP 2005 等价表达式
- [NOIP模拟][bfs][dp][CSD][表达式的计算]
- NOIP 2011聪明的质监员
- NOIP 2005 等价表达式 四则运算
- [NOIP 2013 PJ]表达式求值
- 【NOIP 2005】 等价表达式 题解
- [noip 2005] 等价表达式(equal)
- noip 2005 T4 等价表达式
- NOIP提高组2011 聪明的质监员
- NOIP 2011 提高组 聪明的质监员
- [Codevs 1107][NOIP 1107]等价表达式
- AngularJs2-使用WebStorm创建AngularJs2项目
- 103. Binary Tree Zigzag Level Order Traversal
- codeforce#378C. Epidemic in Monstropolis(模拟+分块+树状数组)
- springMVC 拦截器的两种实现方式
- php面向对象基础:1.类和方法
- NOIP 2011 表达式的值
- Android6.0_r9 CTS 测试 一
- linux 命令2
- [我所知道的BIOS]->[Remaining POST Tasks] 11
- 运算符优先级
- Linux 内核 Starting kernel ... 串口无输出问题归纳总结
- tolua学习资料汇总贴
- 【LeetCode】3Sum,3Sum Closest 题解报告
- mysql merge