状压DP
morejarphone
这个作者很懒,什么都没留下…
展开
-
POJ1321(状压DP)
数据比较小,怎么暴力都行。#include #include #include #include #include using namespace std;#define maxn 1<<8#define maxm 8111111int n, kk;char mp[11][11];long long dp[11][maxn]; //放到第i行 状态为j 已经放置k个棋子的原创 2015-10-23 23:14:14 · 396 阅读 · 0 评论 -
HDU 4856 (bfs 状压DP)
TunnelsTime Limit: 3000/1500 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1925 Accepted Submission(s): 570Problem DescriptionBob is travelling i原创 2016-04-02 21:44:05 · 402 阅读 · 0 评论 -
HDU 4568 (SPFA 状压DP)
题意:求从外界拿到所有宝藏并且出去的最小花费。先用k次SPFA求出每个宝藏到每个点的最短路径,然后dp(i,j)表示宝藏获得的状态为i,位置在j的最小花费,转移方程就是dp(i,j)=min {dp(i^(1坑点:并没有宝藏拿不到的情况不用考虑;注意-1的格子。#include #include #include #include #include #includ原创 2016-04-07 23:08:32 · 402 阅读 · 0 评论 -
HDU 2825 (AC自动机 状压DP)
题目链接:点击这里题意:给定m个单词的集合, 求长度为n的串中, 至少出现k个集合中的单词的串有多少个.设dp[i][j][k]dp[i][j][k]表示在字典树的ii节点上, 单词的出现状态为jj, 串的长度为kk的方案数, 沿着字典树就容易搞出状态方程 dp[i][j][k]=dp[next[i][id]][j|state][k+1](0≤x≤26)dp[i][j][k]=dp[next[i][原创 2016-06-16 23:21:47 · 318 阅读 · 0 评论 -
HDU 4778 (状压DP 博弈)
题目链接:点击这里题意:b个包,一共有g种颜色的宝石,s个同颜色宝石能炼一个石头。两个人轮流选择一个包把包里面的石头扔进炉子,如果当前把包里宝石扔进炉子的人得到石头就能继续扔包。A先手,求A最多领先B多少个石头。用dp[i][0/1]dp[i][0/1]表示包的状态是i,某个人先手一直到游戏结束A最多能领先多少个石头,然后状态从后往前推,如果当前回合是A先手必然是选择领先数+新获得石头数最大的转移路原创 2016-09-18 10:57:09 · 678 阅读 · 0 评论