ArachnidaKing @ 2018-10-23 11:33:15
//dp过程
for(int i=3;i<=n;++i)//枚举当前行数
for(int j=1;j<=k;++j)//枚举当前行数状态
if((map[i]&s[j])==0)//不与地形冲突
for(int p=1;p<=k;++p)//枚举前一行状态
if((s[p]&s[j])==0)//当前行状态不与前一行冲突
for(int q=1;q<=k;++q)//枚举前两行
//不与前两行冲突,且前两行自身不冲突
if(((s[q]&s[p])==0)&&((s[q]&s[j])==0)) f[i][p][j]=max(f[i][p][j],f[i-1][q][p]+g[j]);
请问各位路过大佬,为什么如果判断p、q是否与地图冲突(冲突则continue),输出就会比正解较小?百思不得其解
by Dispwnl @ 2018-10-23 12:14:59
写丑了吧……
by Starrydream @ 2018-10-23 20:46:23
这不是8^n吗。。。果然预处理+剪枝nb