懵逼题,一度推出六维的DP,最后看了题解。。 恍然大悟。。。(需要运用好题目的限制(a[i]>=25 且a[i]<=32))并将相同的a[i]进行压缩,压缩成一个值 因为拿出一本书只有两种可能,(1)放到最前面,(2)放到与它相同编号的书的旁边,那么我们可以就此加上限制,就可以推出状态转移方程式了( ...
分类:
编程语言 时间:
2017-09-28 09:58:43
阅读次数:
170
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3001 题目大意:有n个城市,m条路,每条路都有一定的花费,可以从任意城市出发,每个城市不能经过两次以上,要求经过所有城市并且花费最少,求出最小花费。 解题思路:三进制的状态压缩DP,跟二进制还是有一点不 ...
分类:
其他好文 时间:
2017-09-23 14:36:33
阅读次数:
188
http://poj.org/problem?id=1324 Holedox Moving Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 17042 Accepted: 4065 Description During winte ...
分类:
其他好文 时间:
2017-09-18 22:27:36
阅读次数:
246
状态压缩DP:本生有很多状态,然后压缩成一种状态。 很多时候都会使用位运算 Doing Homework Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission( ...
分类:
其他好文 时间:
2017-09-09 17:16:14
阅读次数:
224
233今天蒟蒻我连文化课都没听光想着这个了 然后我调了一下午终于过了!!! 一看数据范围似乎是状压,然而216等于65536。开一个65536*65536的二维数组似乎不太现实。 所以Rqy在四月还是几月给我们讲这道题的时候说要半DFS半DP,时间复杂度O(2n*n3) 怎么个半DFS半DP法呢? ...
分类:
其他好文 时间:
2017-09-07 21:28:57
阅读次数:
122
题目链接:http://hihocoder.com/problemset/problem/1048 题目大意:用1*2或者2*1的方块铺满一个N*M的大方格,共有多少种方法。结果对1e9+7取余。2<=N<=1000, 3<=m<=5 解题思路:挑战程序设计竞赛上有基本上一样的题目,可以参考,原题中 ...
分类:
其他好文 时间:
2017-09-07 00:58:37
阅读次数:
218
题意:一个矩阵,只能放1*2的木块,问将这个矩阵完全覆盖的不同放法有多少种。 如果是横着的就定义11,如果竖着的定义为竖着的01,这样按行dp只需要考虑两件事儿,当前行&上一行,是不是全为1,不是说明竖着有空(不可能出现竖着的00),另一个要检查当前行里有没有横放的,但为奇数的1。 状态表示 dp[ ...
分类:
其他好文 时间:
2017-09-05 14:36:45
阅读次数:
173
题意:有n个原子,每当两个原子碰撞时就会产生能量,并且消耗其中一个原子。已知每两个原子碰撞时消耗其中指定一个原子所产生的能量,问最多能产生多少能量? 状态表示 dp[state] 状态为state时的最大能量 转移方程 dp[state] = max(dp[state],dp[state']+a[i ...
分类:
其他好文 时间:
2017-09-04 21:26:08
阅读次数:
145
题意 给定一个 n * m 的矩形. 问有多少种多米诺骨牌覆盖. n, m <= 11 . 实现 ...
分类:
其他好文 时间:
2017-09-04 17:51:58
阅读次数:
180
题目链接 数据范围这么小,难度又这么大,一般就是状态压缩DP了。 对输入进行处理,二进制表示每一行的草地状况。如111表示这一行草地肥沃,压缩成7. 所以f[i][j]表示第i行状态为j时的方案数 状态j指的是一个二进制集合,有牛在吃草的位置是1,不再吃草的位置是0 f[i][j]=Sum(f[i- ...
分类:
其他好文 时间:
2017-09-02 19:59:43
阅读次数:
197