小国王——状压DP
admin
2024-02-12 18:27:32
0

在 n×n 的棋盘上放 k 个国王,国王可攻击相邻的 8 个格子,求使它们无法互相攻击的方案总数。

输入格式

共一行,包含两个整数 n 和 k。

输出格式

共一行,表示方案总数,若不能够放置则输出0。

数据范围

1≤n≤10,
0≤k≤n^2

输入样例:

3 2

输出样例:

16

思路:

f[i][j][k]:表示前i行放置了j个国王,且第i行的状态是k        属性:cnt

首先考虑当前这一行,找到当前这一行所有的合法状态(即状态的纵坐标不相邻),以及合法状态的合法转移状态(因为当前这一行的状态肯定是上一行转移过来的,所以只需要考虑上一行的状态。 那么上一行什么样的状态才能转移成当前的状态?由题意发现上一行状态与当前行状态的纵坐标不能相邻上下不能相邻,左右也不能相邻)以便于状态转移计算。

状态表示:

f[i][j][k]:表示前i行放置了j个国王,且第i行的状态是k        

属性:cnt

状态计算:

f[i][j][k] +=  f[i-1][j-cnt[state]][state]

初始状态:

f[0][0][0]

目标状态:

f[n+1][k][0]        

因为只要这层不摆东西,则上一层 只要合法,那一定可以转移到这一层的这个0状态

解决代码:

#include
#include
#include
#include
#include
using namespace std;typedef long long LL;const int N = 11, M = 1 << N, C = N * N;int n, m, k;
LL f[N][C][M];			//f[i][j][k]:表示前i行放置了j个国王,且第i行的状态是k		属性:cnt 
int cnt[M];			//用来存储每个合法状态中有多少个国王 
vector legal;		//存放合法状态数组 
vector trans[M];	//存放合法状态的合法转移状态 bool check(int state)		//检查纵坐标是否相邻 
{return !(state&state>>1);
}int count(int state)	
{int cnt = 0;for(int i=0;i>i&1) cnt++;return cnt;
}int main()
{cin>>n>>k;//预处理所有状态for(int i=0;i<1<=0)f[i][j][st] += f[i-1][j-cnt[st]][tt];LL ans = 0;			for(auto s : legal)ans += f[n][k][s];cout<

相关内容

热门资讯

佛教如何看待人生意义? 佛教如何看待人生意义?不会吧,不管什么样的人生,就算不修佛也会影响未来,佛怎么会讲他无意义?而且,佛...
电影少年派的奇幻漂流中老虎是怎... 电影少年派的奇幻漂流中老虎是怎么将羊叼进栅栏的?拽进去的。因为那只羊的体型比较小,而且派的家人都在那...
当有人说我是她克星时!我应该怎... 当有人说我是她克星时!我应该怎么回答她! 她是我喜欢的人所以你一辈子也跑步出我手心喜欢就要大胆的说出...
图书馆战争的漫画简介 图书馆战争的漫画简介在实施「媒体良化法」的查禁时代,图书馆为了守护书籍而设立了「图书队」。等待新入队...
长生龙霍山石斛天价 长生龙霍山石斛天价答:一般要零点五元钱一克,10克就25元钱,所以长生龙霍山石斛零点五元钱一克。
在高达seed destiny... 在高达seed destiny最后结局中。阿斯兰和卡嘉丽在一起了么?结局是和美玲在一起,但是阿斯兰和...
神鬼传奇好玩不 神鬼传奇好玩不不好玩,2d的,好玩的地方就XP技能,仿照魔域的,不过需要打1000下后在能放一个,武...
直男怎么哄女生?为什么直男越哄... 直男怎么哄女生?为什么直男越哄越让女生爆发小情绪?直男哄女生的时候总是会问,女生为什么不开心。问女生...
法语输入法 法语输入法电脑上没有法语输入法,我想输入法语怎么办?在控制面板里的添加里也没有法语(加拿大) 法语(...
得到原谅后不敢去面对一个人是什... 得到原谅后不敢去面对一个人是什么原因?一个人如果真的爱你,说话再难听,他都会来找你。不知从什么时候开...
合金装备5 原爆点和幻痛的区别 合金装备5 原爆点和幻痛的区别原爆点是合金装备5的序章,幻痛是正篇。幻痛发生在原爆点故事的九年后。原...
怎样才算阳光男孩! 怎样才算阳光男孩!性格乐观开朗开朗 大气 活泼不以物喜,不以己悲爱笑,爱帮助别人,还有……长的好...
红楼梦人物简介 红楼梦人物简介要快,要少鸳兆罩鸯 小红 龄官 娇杏 紫鹃 莺儿 彩云族神闹 司棋 芳瞎肢官 麝月 平...
当你踏上梦中的步伐,梦中归来是... 当你踏上梦中的步伐,梦中归来是什么歌所属专辑:猴哥给我变点钱来花羡拍演唱者:谢帝作词则橘:谢帝作曲兄...
结了婚的男人,尽量远离这三种陷... 结了婚的男人,尽量远离这三种陷阱,是哪三种陷阱呢?01结了婚的男人小心别落入“情感”陷阱‍,02关于...
名著随笔,连环计 是什么意思? 名著随笔,连环计 是什么意思?通俗说就是计谋就像圆环一样,一个连着一个。您好!很高兴为您解答问题。名...
动漫《一拳超人》中,有哪些受琦... 动漫《一拳超人》中,有哪些受琦玉影响而走上正途的人?杰诺斯、King、基诺斯博士、吹雪、眼镜男、水龙...
大学体验英语综合教程3课后翻译... 大学体验英语综合教程3课后翻译答案书上的光碟有的,找找看!
名字带红色的动画片 名字带红色的动画片 斩!赤红之瞳红kure-naiH2O赤沙印记赤色的约定(赤之约束) BY:天...
斗罗大陆万年成神这个说法成立吗... 斗罗大陆万年成神这个说法成立吗?成立的,成神的最低条件是万年以上,要不就是等时间一到,自动继承神位,...