[bzoj1087]: [SCOI2005]互不侵犯King(状压dp)
来源:互联网 发布:苹果笔记本软件下载 编辑:程序博客网 时间:2024/05/17 03:10
传送门
状压dp
则转移方程为:
代码:
#include<bits/stdc++.h>#define ll long longusing namespace std;inline int read(){ int x=0;char ch=' ';int f=1; while(ch!='-'&&(ch<'0'||ch>'9'))ch=getchar(); if(ch=='-')f=-1,ch=getchar(); while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar(); return x*f;}int n,K;ll f[10][1001][100];int all;int can[1001];int tot[1001];int cnt;int main(){ n=read();K=read(); all=(1<<n)-1; for(int s=0;s<=all;s++){ int flag=1; for(int i=0;i<n-1;i++){ if(s&(s>>1)){ flag=0; break; } } if(flag){ can[++cnt]=s; int ans=0; for(int i=0;i<=n-1;i++){ if((s>>i)&1)ans++; } tot[cnt]=ans; } } for(int s=1;s<=cnt;s++){ f[1][can[s]][tot[s]]=1; } for(int i=1;i<n;i++){ for(int j=1;j<=cnt;j++){ for(int k=1;k<=cnt;k++){ int s1=can[j]; int s2=can[k]; if((s1<<1)&s2)continue; if((s1>>1)&s2)continue; if(s1&s2)continue; for(int num=tot[j];num+tot[k]<=K;num++) f[i+1][s2][num+tot[k]]+=f[i][s1][num]; } } } ll ans=0; for(int i=1;i<=cnt;i++){ ans+=f[n][can[i]][K]; } printf("%lld",ans); return 0;}
阅读全文
0 0
- [BZOJ1087][SCOI2005]互不侵犯King(状压dp)
- 【BZOJ1087】【SCOI2005】互不侵犯King(状压dp)
- bzoj1087 [SCOI2005]互不侵犯King(状压dp)
- [bzoj1087]: [SCOI2005]互不侵犯King(状压dp)
- 【BZOJ1087】【SCOI2005】【互不侵犯king】【状压dp】
- 【bzoj1087】[SCOI2005]互不侵犯King 状压DP
- BZOJ1087: [SCOI2005]互不侵犯King 状压DP
- [BZOJ1087][SCOI2005][状压DP]互不侵犯King
- BZOJ1087: [SCOI2005]互不侵犯King 题解【DP】【状压】
- bzoj1087[SCOI2005][互不侵犯King] 状压DP
- BZOJ1087 [SCOI2005]互不侵犯King 状压DP
- BZOJ1087(SCOI2005)[互不侵犯King]--状压DP
- BZOJ1087 [SCOI2005]互不侵犯King 状压dp
- 【轮廓线DP,状压DP】BZOJ1087 [SCOI2005]互不侵犯King
- bzoj1087: [SCOI2005]互不侵犯King(状态压缩+Dp)
- bzoj1087: [SCOI2005]互不侵犯King 压状dp
- [bzoj1087][scoi2005][DP][状态压缩]互不侵犯King
- BZOJ1087 [SCOI2005]互不侵犯King 状态压缩DP
- Spring读取Bean的过程
- Hibernate之criteria.setProjection(null)作用
- [bzoj1036]:[ZJOI2008]树的统计Count(树链剖分)
- [hdu5628]Clarke and math(dirichlet卷积)
- lua(1)
- [bzoj1087]: [SCOI2005]互不侵犯King(状压dp)
- 关于python的一些特性
- 经典回溯算法之n皇后问题
- 解决 CocoaPods was not able to update the `master` repo
- JAVA NIO(六):读取10G的文件其实很容易
- 栈和队列---生成窗口最大值数组
- [bzoj1468]Tree(点分治)
- 寒武纪一面
- Fragment的一个简单实现+EditText的监听事件