码迷,mamicode.com
首页 >  
搜索关键字:状压    ( 1865个结果
POJ 3311-Hie with the Pie(floyd+TSP 状压DP)
题意:一个送外卖的人,要将外卖全部送去所有地点再回到店离,求最短路。(可以重复经过边) 思路:由于可重复走某些边,所以先求各个点的最短路,再TSP dp[i][s] 表示目前在i点还需要遍历s集合后回到0点的最短路径 边界条件就是dp[i][0]=dis[i][0] //196 KB 0 ms C++ 1190 B #include #include #include #include ...
分类:其他好文   时间:2015-03-29 22:17:56    阅读次数:245
POJ 3254 Corn Fields (状压DP)
题意:一个n*m的矩阵,每个格子是0或者1,1表示土壤肥沃可以种植草地,0则不可以。在种草地的格子可以放牛,但边相邻的两个格子不允许同时放牛,问总共有多少种放牛的方法?(不放牛也算一种情况) 思路:就是POJ 1185 炮兵阵地 的弱化版,炮兵那题相当于间隔两行,这里是间隔一行,减少一维坐标就可 //192 KB 32 ms C++ 1221 B #include #incl...
分类:其他好文   时间:2015-03-29 22:13:03    阅读次数:117
URAL 1500. Pass Licenses 枚举+位运算
题意:有n个点,k种交通卡,m条路。 每条路有对应的交通卡,对应的交通卡可能有多张,拥有一张就可以通行。问从0到1,所需要的交通卡最少几张,并输出是哪几张。 做法:因为数据很小,所以可以枚举交通卡,复杂度是2^k=10^6。然后dfs,每个点只走一次,所以复杂度是n。所以总的复杂度是10^7。跑得有点久用了1.7s。...
分类:其他好文   时间:2015-03-29 12:15:05    阅读次数:164
URAL 1507 Difficult Decision 矩阵快速幂
题意: 输入A矩阵,求出的B矩阵是否有0,有的话NO,没有YES。 做法: 矩阵快速幂,先算出 K等于n(n-1)次的A矩阵。复杂度 是 log(n^2)*(n^3)=10^4 ,然后k循环加到 n(n+1),每次把矩阵再乘个A,然后加到B里。复杂度是 n*n^3=10^6。所以妥妥的。因为只在乎有没有0,输入只有正数,矩阵里也只有乘法和加法。所以我把非零数改成了1,然后乘法用状压位运算优化到n^2。跑得稍微快点。...
分类:其他好文   时间:2015-03-28 10:10:13    阅读次数:162
Codeforces 515D Drazil and Tiles
题意:给你一个图,包含空格 。 和墙* , 你现在要在空格处放置1x2的格子使得空白处全部填满,问你是否是 (有解或者多个解) 还是(只有一个解).解题思路:这个题图太大了,显然不能用DLX或者状压dp,应该怎么样能,我们知道 如果一个空白边上三面都是墙或者已经填被填上了,那这个空白只有一种填法,然...
分类:其他好文   时间:2015-03-27 21:53:48    阅读次数:299
Codeforces 31E TV Game 中途相遇法 状压dp
题目链接:点击打开链接 题意: 给定2*n长的数字。 把这个数字拆成2个长度为n的数字,且相对位置不变。使得拆后得到的2个数字的和最大。 输出一个方案。 显然是中途相遇法,先计算左半段,再计算右半段 分别状压左半段和右半段,注意左半段状压后要在末尾补上0。 代码估计哪里有小越界==,数组开大了一点才过。。具体就不查了。 #include #include #incl...
分类:其他好文   时间:2015-03-21 17:05:49    阅读次数:164
Codeforces 327E Axis Walking 状压dp(水
题目链接:点击打开链接 题意: 给定n个数,随意排列。 给定k个违禁数b[]。 问:有多少个排列使得这个排列的 n项前缀和中不出现违禁数。 (formally,if it's a legal permutation, sum[i] != b[j] (1 sum[0] = 0; sum[i] = sum[i-1]+a[permutaion[i]]; ==java党表示被tle,心疼自己...
分类:其他好文   时间:2015-03-20 23:55:19    阅读次数:519
HDU 4336 Card Collector 状压+概率dp
题目链接:点击打开链接 dp[i] 表示已经拥有卡片的状态为i, 还需要吃多少包才能拥有所有卡片, 显然 dp[(1 而答案就是dp[0]; 用样例二举例,下面dp方程内直接用二进制表示,为了方便观察,我们用最高位表示第一张卡片(P1=0.1),最低位表示第n张卡片(P2=0.4)  dp[01]  = (dp[01]+ 1)* P + (dp[11]+1) *P2  //其中P表示吃不...
分类:其他好文   时间:2015-03-20 22:04:52    阅读次数:128
HDU 4012 Paint on a Wall(状压+bfs)
Paint on a WallTime Limit: 10000/5000 MS (Java/Others)Memory Limit: 65768/65768 K (Java/Others)Total Submission(s): 830Accepted Submission(s): 325Prob...
分类:其他好文   时间:2015-03-20 17:46:40    阅读次数:194
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!