状压dp
你的目光看海
这个作者很懒,什么都没留下…
展开
-
poj 3254
链接:http://poj.org/problem?id=3254 分析:一道经典的状压dp,核心是将排列方式看做01串,用十进制表示 代码:/*2017-2-11 15:51 author:lian*/#include <iostream>#include <algorithm>#include <cstdlib>#include <cstdio>#include <cstrin原创 2017-02-11 15:56:02 · 281 阅读 · 0 评论 -
hoj 2662
链接:http://acm.hit.edu.cn/hoj/problem/view?id=2662 题意: 有一个n*m的棋盘(n、m≤80,n*m≤80)要在棋盘上放k(k≤20)个棋子,使得任意两个棋子不相邻(每个棋子最多和周围4个棋子相邻)。求合法的方案总数。 分析: 经典的状压dp。 设状态dp[n][num][k]: 第n行时,已经放了num个棋子,并且第n行的状态是k。 可得状态转原创 2017-02-12 20:03:00 · 458 阅读 · 0 评论 -
poj 1185
链接:http://poj.org/problem?id=1185 分析:一道经典的状压dp,坑点是如果开dp[100][1<<10][1<<10]会爆内存,其实根本不用开这么打的空间。只需将所有可能的状态找到就行了,用这个代码: int num = 0; for(int i=0; i<(1<<10); i++) if(judge_one(i)) n原创 2017-02-14 21:50:50 · 251 阅读 · 0 评论