【题目链接】:
【题目大意】给定一个逻辑运算符号a->b:当前仅当a为1b为0值为0,其余为1,构造括号。改变运算优先级使得最后结果为0
【解题思路】:
todo~~
/* 思路: 1.假设最后一位是1,不管怎样结果不会为0.puts("NO"); 2.那么有解的情况下最后一位必为0 2.1.进一步发现,事实上倒数第二位必为1,仅仅有1前面的结果和该位1结合才干等于1,进一步1->0=0; 2.2.假设1前面是0。那么合并这两位数,组成1,递推2.1 */
代码:
#includeusing namespace std;const int N=1e5+10;typedef long long LL;typedef unsigned long long LLU;int num[N];int n,m,l,r,ans,cnt,top;int zero,one;int main(){ while(cin>>n) { zero=one=0; for(int i=0; i ",num[i]); } printf("%d",a2); for(int i=0; i<=n-3; ++i) printf(")"); if(n-1) printf("->0"); printf(")"); puts(""); } else puts("NO"); } return 0;}