
状态压缩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 · 190 阅读 · 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 · 181 阅读 · 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 · 407 阅读 · 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 · 383 阅读 · 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 · 398 阅读 · 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 · 400 阅读 · 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 · 243 阅读 · 0 评论