先转换成后缀表达式,然后f[i][0/1]表示前i位的值得到0/1的方案数,初始化和转移如下:
f[0][0]=1;
f[0][1]=1;
F(i,1,m) {
cerr<<a[i];
if(a[i]=='+'){
f[i][1]+=f[i-1][0]+f[i-1][1]*2;
f[i][0]+=f[i-1][0];
}else{
f[i][0]+=f[i-1][1]+f[i-1][0]*2;
f[i][1]+=f[i-1][1];
}
f[i][0]%=mod;
f[i][1]%=mod;
}
然而WA30pts,想问一下这种方法可行吗?或者我哪里写挂了?