码迷,mamicode.com
首页 >  
搜索关键字:状态压缩 198    ( 1179个结果
POJ 3254 (状压DP) Corn Fields
基础的状压DP,因为是将状态压缩到一个整数中,所以会涉及到很多比较巧妙的位运算。我们可以先把输入中每行的01压缩成一个整数。判断一个状态是否有相邻1:如果 x & (x 2 #include 3 4 const int maxn = 13; 5 const int M = 100000000;...
分类:其他好文   时间:2015-05-07 11:52:42    阅读次数:108
POJ 1143 Number Game 状态压缩dp
#include #include #include #include #include #include #include #include #include #include #include #define INF 100000000 using namespace std; int ans[30]; int a[30]; int d[(1<<20)+10]; i...
分类:其他好文   时间:2015-05-06 23:08:40    阅读次数:193
POJ2411——状态压缩+DFS——Mondriaan's Dream
DescriptionSquares and rectangles fascinated the famous Dutch painter Piet Mondriaan. One night, after producing the drawings in his 'toilet series' (...
分类:其他好文   时间:2015-05-06 19:39:15    阅读次数:248
hdu 4336 Card Collector
dp+状态压缩 1 #include 2 using namespace std; 3 double p[23]; 4 double dp[1=0; i--)14 {15 dp[i]=1.0;16 double sum=0.0;17 ...
分类:其他好文   时间:2015-05-06 06:51:22    阅读次数:153
hdu 5094 Maze bfs+状态压缩
题意:n*m大的迷宫 ,有p种钥匙。钥匙最多有10种,所以可以用状压表示门需要钥匙的状态, 还有已经拥有哪几把钥匙的状态。 然后下来一个k,然后k行表示 (x1,y1),(x2,y2)直接有门或者墙。 如果g==0 ,就是有墙, 如果g>0 表示有门,且门需要第g把钥匙才能开。 然后下来一个s,然后s行,表示(x,y)这个点有 第g把钥匙。 问从(1,1)到(n,m)最少几步。 做法:状压, 每个点有四个方向,记录能否通过的状态, 门的话 标记为-1, 0,表示不用钥匙,>0 的话,哪位上是1,...
分类:其他好文   时间:2015-05-05 23:59:50    阅读次数:360
hoj 2662 状态压缩dp
题意:给定mxn的棋盘,要往其中放d枚棋子,其中,一枚棋子的上下左右四个位置不能再放棋子。求所有合法的放置状态 ( 0= n , 这个递推棋盘就有 m行 ,每行至多有 2^n-1个状态数。其实,没有这么多!按照题意,每个1的上下左右不能有1。对于一行,只知左右,所以把有连续1的状态排除. t为剩下的...
分类:其他好文   时间:2015-05-05 23:47:38    阅读次数:188
nyoj832 合并游戏(状态压缩DP)
合并游戏 题目链接 题意 : n个石子, 给你一个n*n矩阵, A[i][j]表示第i个和第j个合并蹦出的金币值, 合并完石子j消失。求合并所有石子后,所得的最大金币数。 分析 : 1、 题中给的数据范围 n(1<=n<=10) 也就是说最多10个石子, 那么我们不妨用一个二进制串来表示合并的状态,1表示没被合并,0表示合并后消失了,例如(1001)四个石子第2、3个被合并了。 2、...
分类:其他好文   时间:2015-05-05 08:56:28    阅读次数:107
nyoj832 合并游戏(状态压缩DP)
题意 : n个石子, 给你一个n*n矩阵, A[i][j]表示第i个和第j个合并蹦出的金币值, 合并完石子j消失。求合并所有石子后,所得的最大金币数。分析 : 1、 题中给的数据范围 n(1(1100, 1001, 0101) , 1011 —> (1010, 1001, 0011) , 01...
分类:其他好文   时间:2015-05-04 23:36:44    阅读次数:172
状态压缩DP 初邂逅
#include using namespace std; #define INF 0x7ffffff #define maxn 20 int n; int dp[1<<maxn][maxn]; int d[maxn][maxn]; int dfs(int S, int v) { if(dp[S][v] != -1) return dp[S][v]; if(S==(1<<...
分类:其他好文   时间:2015-05-04 22:06:40    阅读次数:164
UVa11795 Mega Man's Mission(状态压缩DP)
题意: 洛克人最初只有一种武器 “Mega Buster”(这种武器可以消灭特定的一些机器人),你需要按照一定的顺序消灭 n 个其他机器人。每消灭一个机器人你将会得到他的武器(也可能没有得到武器),而这些武器可以消灭特定的机器人。你的任务是计算出消灭所有机器人的顺序总数。注意:一个机器人的武器可能可以消灭自己,但这对最终答案没有影响,因为必须先消灭这个机器人才能够得到他的武器。 思路:n 的范围为 [1,16],可以用状态压缩DP来做,用二进制保存状态。时间复杂度为 O(n*2^n) 。首先用 weapo...
分类:其他好文   时间:2015-05-04 20:19:43    阅读次数:122
1179条   上一页 1 ... 72 73 74 75 76 ... 118 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!