博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ1087[SCOI2005]互不侵犯——状压DP
阅读量:7104 次
发布时间:2019-06-28

本文共 752 字,大约阅读时间需要 2 分钟。

题目描述

  在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上

左下右上右下八个方向上附近的各一个格子,共8个格子。

输入

  只有一行,包含两个数N,K ( 1 <=N <=9, 0 <= K <= N * N)

输出

  方案数。

样例输入

3 2

样例输出

16
 
 
  n<=9,显然是状压dp,定义状态f[i][j][k]表示枚举到第i行,状态为j,前i行总共放了k个国王的方案数。搜索出一行符合的所有状态,枚举当前行和上一行的状态,判断是否冲突,然后f[i][j][l]+=f[i-1][k][l-t[j]]转移即可。最后答案是∑f[n][j][m]
#include
#include
#include
#include
#include
#include
using namespace std;long long f[12][2000][200];int cnt;int n,m;int s[2000];int t[2000];long long ans;void dfs(int x,int y,int sum){ if(y>=n) { s[++cnt]=x; t[cnt]=sum; return ; } dfs(x,y+1,sum); dfs(x|(1<

转载于:https://www.cnblogs.com/Khada-Jhin/p/9301774.html

你可能感兴趣的文章
慧聪电子网战略升级 玩转电子产业供应链服务之道
查看>>
Javascript定时器(三)——setTimeout(func, 0)
查看>>
JAVA之旅(五)——this,static,关键字,main函数,封装工具类,生成javadoc说明书,静态代码块...
查看>>
Git基础入门(七)Git撤销操作和远程仓库管理
查看>>
以毒攻毒?牛津大学研究人员用VR治愈被迫害妄想症
查看>>
巧用Powercfg命令 - 玩转Windows 7中的电源管理
查看>>
Java工具创建密钥库,用于Unity 3D打包、签名、发布
查看>>
《你不知道的JavaScript》整理(二)——this
查看>>
Hyperledger Fabric 1.0 从零开始(六)——创建Fabric多节点集群
查看>>
网站页面内容优化
查看>>
提升windows 2000的启动速度
查看>>
iftop工具
查看>>
java-第二章-华氏温度转摄氏温度
查看>>
html查看器android
查看>>
从零打造B/S 自动化运维平台 (一、自动化运维平台的应用及业务流程)
查看>>
SQL Server 2012 AlwaysOn高可用配置之三:安装“故障转移群集”功能
查看>>
shell中使用FTP
查看>>
Oracle12C多租户管理用户、角色、权限
查看>>
Efficient Editing With vim
查看>>
浅谈秒杀系统架构设计
查看>>