CF 327E(Axis Walking-状态压缩Dp-lowbit的使用)
来源:互联网 发布:为什么会有网络诈骗 编辑:程序博客网 时间:2024/05/22 01:26
状态压缩DP
考试时由于24*2^24 复杂度太高没写
结果答案居然就是这样
不过枚举时要直接用lowbit(i),返回min(2^k) (i)2 第k位为1
大家直接看答案就行了
忽然发现几乎没做过状压DP的题
#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#include<algorithm>#include<functional>#include<cmath>#include<cctype>#include<cassert>#include<climits>using namespace std;#define For(i,n) for(int i=1;i<=n;i++)#define Rep(i,n) for(int i=0;i<n;i++)#define Fork(i,k,n) for(int i=k;i<=n;i++)#define ForD(i,n) for(int i=n;i;i--)#define Forp(x) for(int p=pre[x];p;p=next[p])#define RepD(i,n) for(int i=n;i>=0;i--)#define MEM(a) memset(a,0,sizeof(a))#define MEMI(a) memset(a,127,sizeof(a))#define MEMi(a) memset(a,128,sizeof(a))#define INF (2139062143)#define F (1000000007)#define MAXN (1<<24)#define MAXItem (24+10)typedef long long ll;int n,k;ll f[MAXN]={0},g[MAXN]={0},A[MAXN]={0},a[MAXItem]={0},b[MAXItem]={0};int main(){// freopen("CF327E.in","r",stdin); scanf("%d",&n); For(i,n) scanf("%d",&a[i]),A[1<<i-1]=a[i]; cin>>k; For(i,k) scanf("%d",&b[i]);Fork(i,k+1,2) b[i]=-1; //除了x=-1,x^-1!=0 Rep(i,1<<n) f[i]=f[i-(i&(-i))]+A[i&(-i)]; g[0]=1; Rep(i,1<<n) if (f[i]^b[1]&&f[i]^b[2]&&f[i]^b[3]) { //for(int j=(1<<n)-1;j;j-=j&(-j)) f[i+(j&-j) for(int j=i;j;j-=j&(-j)) g[i]=g[i]+g[i-(j&(-j))]; g[i]%=F; } printf("%I64d",g[(1<<n)-1]%F); // while(1); return 0;}
- CF 327E(Axis Walking-状态压缩Dp-lowbit的使用)
- Codeforces 327E Axis Walking (状压dp lowbit优化)
- Codeforces 327E Axis Walking【状压Dp+Lowbit优化】
- Codeforces Round #191 (Div. 2) E. Axis Walking (状态压缩+lowbit应用)
- CodeForces Round #191 (327E) - Axis Walking 状态DP..
- CF E. Axis Walking DP 唉。。看了别的神牛的代码忽然发现差距好大
- Codeforces 327E Axis Walking 状压dp(水
- codeforce 327E.Axis Walking
- CF 31E 分块,状态压缩
- CF-63E - Sweets Game(记忆化搜索dp+状态压缩)
- CF Round 235 D 状态压缩 dp
- CF 453B状态压缩dp
- E. Fish+状态压缩dp+codeforces
- Codeforces Round #191 (Div. 2) E. Axis Walking
- CF 141 Div2 C Fractal Detector(状态压缩DP)
- CF 417D - Cunning Gena--状态压缩DP
- CF 259div2 D (状态压缩dp)
- cf 459E DP
- Win7运行命令的打开方法 Win7运行命令大全(45个)
- Android :输入一串字符串,转换成数组(split)....
- Cocos2d-x 捕鱼达人游戏学习教程(4)--实现鱼层类FishLayer
- MESI协议简介
- 20130705
- CF 327E(Axis Walking-状态压缩Dp-lowbit的使用)
- 《Cracking the coding interview》
- 中文URL处理
- 《正确地做事与做正确的事同样重要》
- 前端性能优化:网络存储的静态缓存和非必要内容优化 Web Storage
- Oracle 游标使用全解
- java socket 编程
- ios 网络请求数据封装类
- 网络安全领域实验室(更新中...)