题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3001 题目大意:有n个城市,m条路,每条路都有一定的花费,可以从任意城市出发,每个城市不能经过两次以上,要求经过所有城市并且花费最少,求出最小花费。 解题思路:三进制的状态压缩DP,跟二进制还是有一点不 ...
分类:
其他好文 时间:
2017-09-23 14:36:33
阅读次数:
188
状态压缩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
题意:一个矩阵,只能放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
1621: Picking Cabbage 题目描述 Once, Doraemon and Nobita planted a farm with cabbage. One night their farm was stealed by Takeshi Gian. Takeshi Gian picke ...
分类:
其他好文 时间:
2017-08-31 16:00:37
阅读次数:
231
题意:遍历所有的城市的最短路径,每个城市最多去两遍。将城市的状态用3进制表示。 状态转移方程为 dp[NewS][i]=min( dp[NewS][i],dp[S][j]+dis[i][j]) S表示遍历点的状态,i表示到达第i个城市。 在到第i个城市的时候看是否存在一个j城市的路径,然后再从j到i ...
分类:
其他好文 时间:
2017-08-29 18:02:42
阅读次数:
166
dp状态压缩 动态规划本来就很抽象,状态的设定和状态的转移都不好把握,而状态压缩的动态规划解决的就是那种状态很多,不容易用一般的方法表示的动态规划问题,这个就更加的难于把握了。难点在于以下几个方面:状态怎么压缩?压缩后怎么表示?怎么转移?是否具有最优子结构?是否满足后效性?涉及到一些位运算的操作,虽 ...
分类:
其他好文 时间:
2017-08-24 23:53:22
阅读次数:
241