![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
状态压缩DP
z岁月无声
这个作者很懒,什么都没留下…
展开
-
POJ-3254 Corn Fields
地址:http://poj.org/problem?id=3254思路:状态压缩dp入门,对于每行的状态枚举,用二进制数来压缩保存。Code:#include<iostream>#include<cstring>using namespace std;const int MOD=1e8;const int MAX_N=13;const int ...原创 2018-09-26 21:37:49 · 164 阅读 · 0 评论 -
POJ-3311 Hie with the Pie
地址:http://poj.org/problem?id=3311思路:状态压缩dp,dp[i][j]:表示在状态i以点j为结尾时的最小距离。状态i表示已经走过了点,对于n个点,一共有0 -> (1<<n)-1个状态,因此dp[i][j]=min{dp[i-去除的点j][k]+G[k][j]}dp[i+新加入的点j][j]=min{dp[i][k]+G[k][j]...原创 2018-09-27 14:55:38 · 147 阅读 · 0 评论 -
POJ-1185 炮兵阵地
地址:http://poj.org/problem?id=1185思路:状态压缩DP,对每行的状态进行枚举,由于一个炮兵影响相邻两行,因此用 dp[i][j][k]来保存 第i行的状态为j,第 i-1行状态为k时的最大个数。Code :#include<iostream>#include<cstring>using namespace std;co...原创 2018-09-27 19:44:35 · 347 阅读 · 0 评论 -
51nod-1033 骨牌覆盖 V2
地址:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1033思路:状态压缩DP+矩阵快速幂对于每行最多只有5列,因此可以枚举出它们的全部状态 0->(1<<m)-1,对于状态其二进制1表示已经有骨牌覆盖,0表示没有,1.由于是1X2的骨牌,则二进制数11,110是合法的,1,10是不合法...原创 2018-09-28 15:22:33 · 323 阅读 · 0 评论 -
牛客小白月赛7-J 方格填色
地址:https://www.nowcoder.com/acm/contest/190/J思路:状态压缩+矩阵快速幂对于状态压缩方程易得转换方程for(int i=2;i<=n;++i) for(int j=0;j<=s;++j) for(int k=0;k<=s;++k) if((j||k)&&!(j&k)) dp[i][j...原创 2018-10-08 19:55:03 · 332 阅读 · 0 评论 -
牛客小白月赛7-H CSL的校园卡
地址:https://www.nowcoder.com/acm/contest/190/H思路:状态压缩DP+BFS用dp[x1][y1][x2][y2][s]来表示两人分别在点 (x1,y1),(x2,y2)处走过的状态s时的所用时间,那么再用BFS来找到第一个满足条件的即可Code:#include<iostream>#include<queue>...原创 2018-10-09 20:28:19 · 361 阅读 · 0 评论 -
Wannafly挑战赛26-C 七彩线段
地址:https://www.nowcoder.com/acm/contest/212/C思路:状态DP,首先对线段按照右端点从小到大排序,dp[i][j]:表示到第i条线段时状态为j的最大长度。那么状态转移方程为 dp[i][j|a[i].p]=max(dp[i][j|a[i].p|,dp[k][j]+a[i].s) (a[i].p为颜色状态,a[i].s为第i条线段长度,表示取当...原创 2018-10-17 00:18:40 · 216 阅读 · 0 评论