【jzoj1617】【SCOI2005】【互不侵犯】【状态压缩动态规划】
来源:互联网 发布:淘宝同城交易怎么弄 编辑:程序博客网 时间:2024/05/22 20:15
题目大意
在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子。
解题思路
设f[i][j][k][s]表示到i,j这个格子,之前放了了k个国王,最后n+1个格子的状态为s,方案数是多少,转移就很简单了,只需滚动一下数组卡空间即可。
code
#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#define LF double#define LL long long#define ULL unsigned int#define fo(i,j,k) for(int i=j;i<=k;i++)#define fd(i,j,k) for(int i=j;i>=k;i--)#define fr(i,j) for(int i=begin[j];i;i=next[i])using namespace std;int const mn=11,ms=(1<<10);LL inf=1e18+7;int n,K;LL f[2][82][ms];int main(){ freopen("d.in","r",stdin); freopen("d.out","w",stdout); scanf("%d%d",&n,&K);int nn=n*n; f[1][0][0]=f[1][1][1]=1; fo(i,1,n)fo(j,1,n){ bool tm2=(n*(i-1)+j)&1; fo(k,0,K)fo(s,0,(1<<(n+1))-1)f[!tm2][k][s]=0; fo(k,0,K)fo(s,0,(1<<(n+1))-1){ if((i==n)&&(j==n))break; int tmp=s&(1<<n); f[!tm2][k][(s-tmp)*2]+=f[tm2][k][s]; if(j<n-1){ if((!tmp)&&(!(s&(1<<(n-1))))&&(!(s&(1<<(n-2))))&&((!(s&1)))) f[!tm2][k+1][(s-tmp)*2+1]+=f[tm2][k][s]; }else if(j==n-1){ if((!tmp)&&(!(s&(1<<(n-1))))&&((!(s&1)))) f[!tm2][k+1][(s-tmp)*2+1]+=f[tm2][k][s]; }else{ if((!(s&(1<<(n-1))))&&(!(s&(1<<(n-2))))) f[!tm2][k+1][(s-tmp)*2+1]+=f[tm2][k][s]; } } } LL ans=0;bool tm2=(n*n)&1; fo(s,0,(1<<(n+1))-1)ans+=f[tm2][K][s]; printf("%lld",ans); return 0;}
阅读全文
0 0
- 【jzoj1617】【SCOI2005】【互不侵犯】【状态压缩动态规划】
- 【BZOJ1087】【SCOI2005】互不侵犯King 状态压缩 动态规划 水题 都不用加特技
- [bzoj1087][scoi2005][DP][状态压缩]互不侵犯King
- BZOJ1087 [SCOI2005]互不侵犯King 状态压缩DP
- JZOJ1617. 【SCOI2005】互不侵犯 (2017.8DP&贪心专题)
- BZOJ 状态压缩dp 1087: [SCOI2005]互不侵犯King
- D 1087: [SCOI2005]互不侵犯King (状态压缩dp)
- BZOJ题目1087: [SCOI2005]互不侵犯King(状态压缩DP)
- BZOJ_P1087&Codevs_P2451 [SCOI2005]互不侵犯King(状态压缩DP)
- [BZOJ]1087: [SCOI2005]互不侵犯King 状态压缩DP
- [BZOJ 1087][SCOI2005]互不侵犯King:状态压缩DP
- BZOJ 1087: [SCOI2005]互不侵犯King 状态压缩 题解
- bzoj1087: [SCOI2005]互不侵犯King(状态压缩+Dp)
- 状态压缩动态规划
- 状态压缩动态规划
- 状态压缩动态规划
- 状态压缩动态规划
- 状态压缩动态规划
- coursera《机器学习》吴恩达-week1-02 单一变量的线性回归
- 从hdfs读数据并转为Map格式
- android 内核出现kernel panic的分析
- vue项目搭建步骤
- [k8s]kube-dns架构图解
- 【jzoj1617】【SCOI2005】【互不侵犯】【状态压缩动态规划】
- 点击弹出div层带遮罩可拖动和关闭层
- 【RTL-SDR】用RTL-SDR实现航班追踪(ADS-B)
- vijos 生日蛋糕
- 数组中单独元素问题
- Revit二次开发建立程序:在类库中添加WPF
- SD卡的控制方法与时序
- Colorful Graph CodeForces
- poj