题目链接

Solution

状压 \(dp\) .
\(f[i][j][k]\) 代表前 \(i\) 列中 , 已经安置 \(j\) 位国王,且最后一位状态为 \(k\) .
然后就可以很轻松的转移了...
记忆化搜索还是不够啊... 只能会正向 \(dp\) .

Code

#include<bits/stdc++.h>
#define ll long long
using namespace std;ll f[10][101][1100],n,K;
ll js[1100],sum,ans;int main()
{cin>>n>>K;sum=(1<<n)-1;for(ll i=0;i<=sum;i++)for(ll j=0;j<n;j++)if(i&(1<<j))js[i]++;for(ll i=0;i<=sum;i++)if((i<<1&i))continue;else f[1][js[i]][i]=1;for(ll i=1;i<n;i++)for(ll j=0;j<=K;j++)for(ll k=0;k<=sum;k++){if(!f[i][j][k])continue;for(ll kk=0;kk<=sum;kk++){if((kk<<1&kk))continue;if((k&kk)||((k>>1)&kk)||((k<<1)&kk))continue;if(j+js[kk]>K)continue;f[i+1][j+js[kk]][kk]+=f[i][j][k];}}for(ll i=0;i<=sum;i++)ans+=f[n][K][i];cout<<ans<<endl;
}

转载于:https://www.cnblogs.com/Kv-Stalin/p/9794929.html

[SCOI2005]互不侵犯 (状压$dp$)相关推荐

  1. 洛谷P1896 [SCOI2005]互不侵犯 状压dp+位运算

    题目链接:https://www.luogu.org/problem/P1896 题意:n*n的格子填数,每个数填放位置的周围(8个)不能有其他的数 n<=9 ,矩形状压 f[i][j][s], ...

  2. 状压DP【洛谷P1896】 [SCOI2005]互不侵犯

    P1896 [SCOI2005]互不侵犯 题目描述 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子 ...

  3. BZOJ 1087: [SCOI2005]互不侵犯King

    二次联通门 : BZOJ 1087: [SCOI2005]互不侵犯King /*BZOJ 1087: [SCOI2005]互不侵犯King状压dp将每一行棋子的存在状态压成一个整数f[i][j][k] ...

  4. BZOJ 1087 SCOI2005 互不侵犯King 状压DP

    题目大意:给定n*n的国际象棋棋盘.在上面放k个国王,要求国王之间互不攻击.求方案数 n<=⑨ 状压DP.将每一行的方案二进制压成一维,令f[i][j][k]为第i行用去j个国王状态为k的方案数 ...

  5. BZOJ 1087 [SCOI2005]互不侵犯King ——状压DP

    [题目分析] 沉迷水题,吃枣药丸. [代码] #include <cstdio> #include <cstring> #include <iostream> #i ...

  6. 【洛谷 P1896】[SCOI2005]互不侵犯(状压dp)

    题目链接 题意:在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子. 这是道状压\(DP\)好题啊.. ...

  7. 洛谷-P1896 [SCOI2005]互不侵犯

    链接:https://www.luogu.org/problemnew/show/P1896 题意: 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上 ...

  8. [BZOJ1087][SCOI2005]互不侵犯King

    Description 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上 左下右上右下八个方向上附近的各一个格子,共8个格子. Input 只有一行, ...

  9. luogu P1896 [SCOI2005]互不侵犯

    去tm插头dp 数据范围这么小,又要求,显然上dp 设\(f[i][j][k]\)表示放到第\(i\)行,总共放了\(j\)个那啥,第\(i\)行的格子状态为\(k\)的方案 先预处理出一行内状态的放 ...

  10. 刷题周记(九)——#状压DP:最短Hamilton路径、小国王(互不侵犯)、玉米田(Corn Fields G)、愤怒的小鸟、吃奶酪、炮兵阵地、宝藏 #区间DP:清空字符串#DP:关灯问题II

    文章目录 --2020年12月20日(周日)------------------ 状压DP 一.最短Hamilton路径(模板题) 二.玉米田(P1879 [USACO06NOV]Corn Field ...

最新文章

  1. 主题已放宽,科研UP主们速来Bio-protocol破浪吧
  2. shell+飞信实现网站监控
  3. Python中使用zip()并行迭代
  4. Q_INIT_RESOURE
  5. python如何对一个属性或方法进行封装_python 类、对象、方法、属性
  6. OGNL、EL表达式——Struts
  7. java 递归_两篇文章带你了解java基础算法之递归和折半查找
  8. win7下的python2.7和pip的环境安装
  9. 【PL/SQL】九九乘法口诀表
  10. JSP 的错误调试方法
  11. intouch写数据到MySQL_如何将intouch数据插入到SQL数据库
  12. cass打开dwg文件无效_CAD文件打开时图形文件显示无效怎么办
  13. ORID焦点呈现法(Focused Conversation Method)
  14. Android 应用市场大全 主流市场
  15. 微信公众号微信支付提示 调用支付JSAPI缺少参数:appId
  16. 如何给图片加水印,图片加水印怎么加
  17. 珞珈-B生所学 跟学笔记 PPT(一)
  18. Redis中的布隆过滤器与布谷鸟过滤器,你了解多少?
  19. StringBuffer字符串
  20. 空气动力学——第二章 基本原理和基本方程

热门文章

  1. Process finished with exit code 0 报错解决方法
  2. linux孟庆昌第六章课后题_周三多管理学第5版课后答案资料笔记和课后习题含考研真题详解...
  3. 区块链 以太坊 solidity 事务控制和异常处理 require assert
  4. python字典默认排序_Python字典练习:设置默认获取排序,小,知识点,setdefaultgetsorted...
  5. java实现复原IP地址_LeetCode 力扣 93. 复原IP地址
  6. java 开关按钮_SwitchButton开关按钮的多种实现方式
  7. 开机一直转圈_天气转凉,电脑早上开机也需要预热了吗?
  8. php 方法注释代码规范,PHP开发代码规范
  9. mysql c3p0 释放连接_mysql重启后,防止c3p0丢掉连接数_mysql
  10. springBoot微信支付(native)基本使用