【BZOJ1087】【SCOI2005】互不侵犯King 状态压缩 动态规划 水题 都不用加特技
来源:互联网 发布:linux lamp环境搭建 编辑:程序博客网 时间:2024/06/05 10:51
广告:
#include <stdio.h>int main(){ puts("转载请注明出处[vmurder]谢谢"); puts("网址:blog.csdn.net/vmurder/article/details/44022265");}
题解:
一开始让我写这道题,其实我是,是接受的。
BalaBala。
毕竟水题,都不用特技。
裸状压DP。
直接f[i][j][k]表示第i行状态时j,有k个落子时的方案数。
代码:
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define N 10#define M 1200using namespace std;int n,m,sum;long long f[N][M][N*N];int str[M],num[M],cnt;bool check(int S,int T){ return ((S&T)|(S&(T<<1))|(S&(T>>1)));}int main(){// freopen("test.in","r",stdin); int i,j,k,l; f[0][1][0]=1; scanf("%d%d",&n,&m); sum=1<<n; for(i=0;i<sum;i++) { if((i&(i<<1))==0) { str[++cnt]=i; k=i,l=0; while(k) { l+=(k&1); k>>=1; } num[cnt]=l; } } for(i=1;i<=n;i++) { for(j=1;j<=cnt;j++) { for(k=1;k<=cnt;k++)if(!check(str[j],str[k])) { for(l=num[k];l<=m;l++) { f[i][k][l]+=f[i-1][j][l-num[k]]; } } } } long long ans=0; for(i=1;i<=cnt;i++)ans+=f[n][i][m]; cout<<ans<<endl; return 0;}
1 0
- 【BZOJ1087】【SCOI2005】互不侵犯King 状态压缩 动态规划 水题 都不用加特技
- [bzoj1087][scoi2005][DP][状态压缩]互不侵犯King
- BZOJ1087 [SCOI2005]互不侵犯King 状态压缩DP
- bzoj1087: [SCOI2005]互不侵犯King(状态压缩+Dp)
- 【BZOJ1087 || SCOI2005】互不侵犯King
- [BZOJ1087][SCOI2005]互不侵犯King
- 【bzoj1087】[SCOI2005]互不侵犯King
- 【SCOI2005】【BZOJ1087】互不侵犯King
- [BZOJ1087] [SCOI2005]互不侵犯King
- bzoj1087【SCOI2005】互不侵犯King
- bzoj1087: [SCOI2005]互不侵犯King
- bzoj1087: [SCOI2005]互不侵犯King
- bzoj1087[SCOI2005]互不侵犯King
- 【bzoj1087】[SCOI2005]互不侵犯King
- [BZOJ1087][SCOI2005]互不侵犯king
- bzoj1087: [SCOI2005]互不侵犯King
- bzoj1087: [SCOI2005]互不侵犯King
- BZOJ1087: [SCOI2005]互不侵犯King
- 2015-3-2命运这东西,没什么道理可讲
- 使用Automake/Autoconf完成编译配置
- vc++多线程编程
- A Simple Problem with Integers(线段树成段更新)
- 双流党建
- 【BZOJ1087】【SCOI2005】互不侵犯King 状态压缩 动态规划 水题 都不用加特技
- 【Javaweb】利用urlRewrite插件实现网站的伪静态与aspx,jsp,php三版齐发的邪门歪道
- 关于non-blocking
- 清除缓存,计算缓存大小
- apache vs tomcat
- 正向代理与反向代理
- Java运行时异常
- C++自定义隐式转换函数
- WAR JAR & EAR