![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
状态压缩dp
neuike
这个作者很懒,什么都没留下…
展开
-
poj2288
poj2288TIP: 注意分析好状态,这里用一个三维的数组表示,注意要另外开一个num数组。 n=1时候要注意特判。#include<cstdio>#include<vector>#include<cstring>#include<algorithm>using namespace std;typedef long long ll;int n,m;ll v[20];int mp[原创 2016-08-15 16:33:45 · 207 阅读 · 0 评论 -
Doing Homework hdu1074
状态压缩。 注意输出要依照字典序。所以实际在写的时候要注意方向, 若果是每次枚举可以加的课程,那么此时从0到n, 否则每次枚举可以删掉的课程,那么此时从n到0进行枚举。#include<cstdio>#include<iostream>#include<string>#include<algorithm>#include<cstring>using namespace std;int原创 2016-08-10 14:04:47 · 313 阅读 · 0 评论 -
hdu 3091
hdu 3091 细节好多。 注意题目要求的是一个环,所以默认把第0个珠子当成第一个珠子,最后加的时候,最后一颗要和0能够相连。#include<cstdio>#include<iostream>#include<string>#include<algorithm>#include<cstring>using namespace std;typedef long long ll;i原创 2016-08-10 15:12:29 · 377 阅读 · 0 评论 -
HDU 3182-Hamburger Magi
HDU 3182-Hamburger Magi典型的状态压缩dp的题目。莫名其妙的出bug,之后又莫名其妙的AC。 我觉得dp数组开结构体比开数组存的信息更丰富。#include<cstdio>#include<iostream>#include<string>#include<algorithm>#include<cstring>using namespace std;typedef原创 2016-08-10 18:13:04 · 423 阅读 · 0 评论 -
hdu3001
hdu3001 题意: 给n个城市以及m条路。要求每个城市至多经过2次,求经过全部城市所需要的时间总花费是多少。 思路: 状态压缩。三进制进行压缩处理。可以提前处理好每个状态下每一位的情况。注意好下表细节,n个城市的话,状态的为0到bas[n]数组,即0到3的n次方(前闭后开)。 代码:includeincludeincludeincludeusing namespace std;int原创 2016-08-15 14:19:09 · 366 阅读 · 0 评论 -
hdu4778 Gems Fight!
博弈+状态压缩。感觉其实更像是模拟整个操作过程,每一步都保证达到最优。 然后进行状态转移就好啦。 需要注意的是 数组开小了真的是什么错误都会报,T RE WA都可能出现。。#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int g,b,s;int dp[1<<21];int num[3原创 2016-10-30 12:48:01 · 269 阅读 · 0 评论