码迷,mamicode.com
首页 >  
搜索关键字:状态压缩dp    ( 408个结果
ACM入门 训练方法
ppt:http://pan.baidu.com/s/1eQBzFqE 入门知识汇总: 经典DP: LIS LCS, 状态压缩DP 区间DP 图论:MST , 最短路三种算法(dijkstra , bellman ford, floyd ),最大流, 双连通分量(点双连通,边双连通,强连通) 数学:质因数分解,筛素数,数论的常用结论 数据结构: 线段树,树状数组,字典树,kmp,哈希,平...
分类:其他好文   时间:2015-02-02 15:56:13    阅读次数:279
pojPOJ 2411--Mondriaan's Dream+状态压缩dp
又是一道经典的状态压缩dp 开始自己想了一下,总是觉得因为这个小矩形可以竖着放导致没法确定状态如何转移(第i行的小矩形如果竖着放,及可能影响i-1行,也有可能影响i+1行);后面看了别人的题解后,才知道原来我们可以固定小矩形竖着放的时候只能向前放,这样第i行的状态就只能影响i-1行了,也就能顺利的写出状态转移方程啦。 设dp[i][j]表示第i行处于状态j的时候,共有多少种放置方法。 dp[...
分类:其他好文   时间:2015-01-30 21:09:57    阅读次数:243
poj1185--炮兵阵地
经典的状态压缩dp,有几个点要注意 1)必须用三维的状态才能合理的进行状态的转移,用二维的状态约束性不够 2)初始化是必须要同时初始化前两行的所有状态 3)注意位运算的使用。 代码如下: #include #include #include using namespace std; int total[1000],cur[110]; int dp[110][200][2...
分类:其他好文   时间:2015-01-30 15:54:09    阅读次数:148
poj3254--Fields+状态压缩dp
第一道状态压缩dp :) 考虑每一行的情况,如果我们令0表示不可以放牧1表示放牧,那么这一行所有可行的情况都可以穷举出来并对应到一个十进制的数;这就是状态压缩。再由题目可以知道每一行的状态可不可以出现只和它前面的那一行有关,所以我们可以定义 dp[i][j]表示第i行处于第j种状态的时候有多少种放牧的方法; dp[i][j]=dp[i-1][j1]+dp[i-1][j2]+。。。。+dp[i-...
分类:其他好文   时间:2015-01-29 09:29:07    阅读次数:121
HDU 3861 Prison Breake 状态压缩dp+BFS+二分答案
题意:机器人有一个初始能量x,每走到G点时可选择充满能量(初始能量是满的),每走一步消耗一点能量,问当x最小为多少时,可以把所有的Y都走一遍,输出最小的x! 注意:G点和Y点加一起最多15个 附ac代码 #include #include #include #include using namespace std; char map[16][16]; int dp[1<<16][16...
分类:其他好文   时间:2015-01-28 17:59:54    阅读次数:226
POJ 2411Mondriaan's Dream
蛮水的状态压缩 #include #include long long dp[15][(1<<12)+10]; int mark[(1<0) { if((w&1)==1) { k++; } else { if((k&1)==1) return 0;...
分类:其他好文   时间:2015-01-26 21:09:20    阅读次数:201
UVA 10651 --Pebble Solitaire +dfs
这道题有两种做法:搜索和状态压缩dp 因为这个题的状态只要2^12,所以可以用dfs或bfs将所有的可达状态走一遍,然后就可以得到答案了。 我是用二进制压缩以后再进行的dfs;其实也可以直接开一个12位长度数组表示状态,然后dfs或bfs,这样 状态判重可以用hash或二进制压缩。 代码如下: #include #include #include using namesp...
分类:其他好文   时间:2015-01-25 21:07:17    阅读次数:131
HDU 4539 郑厂长系列故事――排兵布阵
/* 曼哈顿距离的定义是:两个点的坐标为(x1,y1),(x2,y2),两点的曼哈顿距离为|x1-x2|+|y1-y2| 题意:题上要求是两个士兵的距离不能是曼哈顿距离为2,意思就是这个点在同一行同一列不能相间,这个点的左上,左下,右上,右下角不能有 士兵. 思路:dp+状态压缩dp[i][j][k]定义的状态为i是当前行,j为当前行的状态,k为上一行的状态类似炮兵阵地 */#inclu...
分类:其他好文   时间:2015-01-24 10:15:38    阅读次数:150
zoj 3471状态压缩DP
#include #include int max(int a,int b) { if(a>b) return a; return b; } int dp[100000],map[15][15],mark[15]; int main() { int i,j,n,m,k; while(scanf("%d",&n)!=EOF&&n) { for(i=1;i<=n;i++) for...
分类:其他好文   时间:2015-01-23 23:04:19    阅读次数:194
HDU 3001 Travelling 状态压缩dp+3进制
题意:一个人要旅行,他要去n个地方,且这n个地方每个地方最多可以走2次; 给m条路径,寻问最短花费 很明显的状态压缩,但是要求每个点最多只能走两次,就没办法标记当前点走过或是没走过,只能用三进制来表示 1代表地点1被走过一次、 2代表地点1被走过两次、  3(即10)代表地点2被走过一次、  4(即11)代表地点1被走过一次,地点2被走过一次、  5(即12)代表地点1被走过两次,地...
分类:其他好文   时间:2015-01-22 20:22:40    阅读次数:176
408条   上一页 1 ... 28 29 30 31 32 ... 41 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!