平面设计师常用的素材网站,做编程的 网站有哪些,腾讯云备案域名,浙江省城乡建设信息港【题解】炮兵阵地 luogu 题解 暴力状压记录上一行和上上行信息#xff0c;暴力判断是否存在不合法的阵地#xff0c;暴力滚动数组#xff0c;暴力统计#xff0c;暴力转移即可。 看了yyb代码#xff0c;我感觉我不曾写过代码... 加入说不要那么暴力也可以#xff0c;可以…【题解】炮兵阵地 luogu 题解 暴力状压记录上一行和上上行信息暴力判断是否存在不合法的阵地暴力滚动数组暴力统计暴力转移即可。 看了yyb代码我感觉我不曾写过代码... 加入说不要那么暴力也可以可以知道真正有用的状态是很少了的可以直接搜索加剪枝本身这类问题就是NP的。 //winlere
#includeiostream
#includecstdio
#includecstring
#includealgorithmusing namespace std; typedef long long ll;
inline int qr(){register int ret0,f0;register char cgetchar();while(c48||c57)f|c45,cgetchar();while(c48c57) retret*10c-48,cgetchar();return f?-ret:ret;
}
int f[2][110][110];
int n,m,way[110],ans;
int nex[110];
int main(){nqr();mqr();char ch[50];for(register int i1;in;i){scanf(%s,ch1);for(int j1;jm;j)way[i]|(ch[j]P)(j-1);}for(register int t(1m)-1,last-1;t0;--t){if(((t1)|(t2)|(t1)|(t2))t)continue;nex[t]last;lastt;}for(register int i1;in;i){for(register int t0;t110;t)for(register int k0;k110;k)f[i1][t][k]0;for(register int j0;j!-1;jnex[j]){if(i1j!0)break;if(i!1i!2)if((jway[i-2])!j)continue;for(register int k0;k!-1;knex[k]){if(kj)continue;if(i!1(kway[i-1])!k)continue;for(register int l0;l!-1;lnex[l]){if((k|j)l)continue;if((lway[i])!l)continue;register int tol0,templ;while(temp)tol,temp-temp(-temp);ansmax(ans,f[i1][k][l]max(f[i1][k][l],f[(i-1)1][j][k]tol));}}}}coutansendl;return 0;
}转载于:https://www.cnblogs.com/winlere/p/10990786.html