码迷,mamicode.com
首页 >  
搜索关键字:状压dp    ( 1343个结果
Mondriaan's Dream
poj2411:http://poj.org/problem?id=2411题意:给你1*2的方块,让你把n*m的房间填好有多少种方式。题解:状压dp。这一题,我是不会做了,看懂了题解之后,震惊了。这Dp只要找对状态方程,简直就是一种艺术啊。我深深的喜欢上DP了。好了。讲讲这一题吧。首先是状态方程f...
分类:其他好文   时间:2014-07-29 11:19:46    阅读次数:238
炮兵阵地
poj1185:http://poj.org/problem?id=1185题意:这道题太经典了,看到题目就知道题意,故题意略。题解:经典的状压dp。以前觉得dp是个很难的东西,做了这一题之后发现,dp其实根本不难,真的,而且很好打。思维过程:拿到题之后,由于之前做过,所以知道是状压dp。接着想怎么...
分类:其他好文   时间:2014-07-29 10:43:36    阅读次数:277
状态压缩动态规划总结
状态压缩是一个很广的概念,在OI中也有很多的应用,当我们把他应用到动态规划中,可以用来精简状态,节约空间,也方便转移。最常见的就是用二进制来表是状态,利用各种位移运算,就可以实现\(O(1)\)的转移。状压DP适用于“窄棋盘”上的DP,否则状态太多无法存下。POJ1185炮兵阵地题意:给一个\(N ...
分类:其他好文   时间:2014-07-27 23:17:19    阅读次数:391
POJ 3420 Quad Tiling 状压DP+矩阵快速幂
链接:http://poj.org/problem?id=3420 题意:给一个4*N(1 ≤ N ≤ 1e9)的矩形空间,并且给不限块数的1*2的多米诺骨牌,问是由多少种方式能把这个矩形空间填满。 思路:看到这种问题果断想到状压,虽然是在看矩阵的时候看到的这道题。dp[i][j]表示在第i行状态为j的情况下的填满方式数,j的二进制表示中0表示对应位置上一行的骨牌是竖放,或者对应位置的骨牌是横...
分类:其他好文   时间:2014-07-27 11:40:15    阅读次数:269
POJ 3311 Hie with the Pie (状压DP)
状态压缩DP dp[i][j]表示在i状态(用二进制表示城市有没有经过)时最后到达j城市的最小时间 转移方程dp[i][j]=min(dp[i][k]+d[k][j],dp[i][j])   d[k][j]是k城市到j城市的最短距离 要先用flody处理 #include using namespace std; int d[20][20],dp[1<<11][20]; int n,m;...
分类:其他好文   时间:2014-07-27 11:17:42    阅读次数:176
uva 1252 Twenty Questions 状压dp
集合上的dp,看小紫书想了好久~ 有n个物体,m个特征,最少询问多少次能保证猜到是哪个问题。 首先在读入的时候将每个物体转化为一个二进制整数,用一个集合s来表示已经询问了哪些特征。 用d(s,a)来表示询问了集合s的特征,有集合a个特征已经具备,还需要问多少个特征的最小值。a一定为s的子集。 则状态方程为 d(s,a) = min{  max(d(s+{k},a+{k}),(s+{k},a...
分类:其他好文   时间:2014-07-21 23:33:05    阅读次数:244
POJ 1185 炮兵布阵 状压DP
链接:http://poj.org/problem?id=1185 题意:一个地图上有两种地形,H和P,P上可以放一个炮,攻击范围是上下左右各两格,问的是最多可以再地图上放多少个炮。行N 思路:因为上下左右各两格内不能放置炮,所以每一行的状态数从2^10减少到60种。状态转移方程为:dp[i][j][k]=max(dp[i-1][k][l]+bb[j])。dp[i][j][k]表示在第i行状...
分类:其他好文   时间:2014-07-21 16:21:13    阅读次数:272
POJ 3254 Corn Fields 状压DP
链接:http://poj.org/problem?id=3254 题意:一块M*N的田地,每小块地大小是1*1,可以种植物的标记为1,不可以种植物的标记为0,并且相邻的两块地不可以同时种植物。问题是有多少种不同的种植方案(所有地都不种也是一种种植方案) 思路:这是第一道状压DP题,从第一行更新到最后一行,每一行用一个N位的二进制数来表示该行的状态1表示该位置种了植物,0表示该位置没种植物。因...
分类:其他好文   时间:2014-07-19 23:46:58    阅读次数:387
poj 3254 Corn Fields 状压dp
#include #include using namespace std;#define mod 100000000int M,N,top=0;int cur[20],dp[20][600];int state[600],num[110];bool ok(int x){ if(x&x<<1)...
分类:其他好文   时间:2014-07-16 18:57:07    阅读次数:229
状压dp
用dfs,累加答案,或者什么的。他可能还会有一些限制,加点判断就好。sgu 131#include using namespace std;#define LL long long int n, m, i;LL f[10][512]; void dfs(int j, int opt1, int op...
分类:其他好文   时间:2014-07-16 18:55:55    阅读次数:186
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!