OR卷积

来源:互联网 发布:清理c盘软件 编辑:程序博客网 时间:2024/05/29 15:05

状压dp做

inline void prepare(){memset(dp,0,sizeof(dp));for(int i=1;i<=N;i++)dp[f[i]]=1;for(int i=0;i<=20;i++)for(int j=0;j<=(1<<20);j++){if((1<<i)&j)dp[j^(1<<i)]=max(dp[j],dp[j^(1<<i)]);}}inline int sol3(){prepare();int ret=0;for(int i=1;i<=N;i++){int x=0;for(int j=20;j>=0;j--){if((1<<j)&f[i]) continue;else x+=(1<<j);if(dp[x])continue;elsex-=(1<<j);}int tmp=f[i]|x;if(tmp>ret) ret=tmp;}return ret;}


0 0
原创粉丝点击