状态压缩DP真心不会写,参考了别人的写法。先预处理出合理状态,我们用二进制表示可以放棋子的状态,DP[I][J][K]:表示现在处理到第I行,J:表示第I行的状态,K表示现在为止一共放的棋子数量。#include#include#define N 1111using namespace std;t....
分类:
其他好文 时间:
2014-07-14 19:56:24
阅读次数:
254
RelocationTime Limit:1000MSMemory Limit:65536KB64bit IO Format:%I64d & %I64uSubmitStatusDescriptionEmma and Eric are moving to their new house they bo...
分类:
其他好文 时间:
2014-07-14 10:57:52
阅读次数:
259
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2136
Problem A
Another n-Queen Problem
I guess the n-queen problem is known by every ...
分类:
其他好文 时间:
2014-07-13 18:16:11
阅读次数:
498
题目来源:Light OJ 1406 Assassin`s Creed
题意:有向图 派出最少的人经过所有的城市 并且每个人不能走别人走过的地方
思路:最少的的人可以走完全图 明显是最小路径覆盖问题 这里可能有环 所以要缩点 但是看样例又发现 一个强连通分量可能要拆分 n最大才15 所以就状态压缩
将全图分成一个个子状态 每个子状态缩点 求最小路径覆盖 这样就解决了一个强连通分量拆分的问题...
分类:
其他好文 时间:
2014-07-12 20:42:34
阅读次数:
265
题意: 给出n*m (1≤n、m≤11)的方格棋盘,用1*2的长方形骨牌不重叠地覆盖这个棋盘,求覆盖满的方案数。Solution: 位运算+状态压缩+dp 二进制数(####)代表填完一行后这一行的状态,填满的地方为1,未填的地方为0。 显然在填第i行时,能改变...
分类:
其他好文 时间:
2014-07-11 09:56:32
阅读次数:
170
题目链接:uva
1252
题意:
有n个长度为m的二进制串,每个都是不同的。
为了把所有字符串区分开,你可以询问,每次可以问某位上是0还是1。
问最少提问次数,可以把所有字符串区分开来。
思路来源于:点击打开链接
思路:
m很小,可以考虑状态压缩。
dp[s1][s2]表示询问的状态为s1时,此时能猜到状态包含s2时最小需要的步数。
当询问的几位=...
分类:
其他好文 时间:
2014-07-11 08:39:57
阅读次数:
244
大多数人的写法是进行位压缩,不过那样的话需要2^18*100 的空间,效率比较低,重复状态数较多,处理起来也不方便,这一题是给出了512M的空间。但是如果空间再小一倍,前者的方法就无能为力了。
发现有一种对于数位dp来说比较好的状态压缩方式,直接根据数码x出现的次数进行状态压缩。比如说333444,如果用前者的方法压缩就需要2^6=64的空间,而直接按照出现次数压缩就只需要3*3的空间,对于极限数据,利用均值不等式,也差不多只需(ceil(18/10+1)^10)=59049的空间,提高了空间的利用率(原来...
分类:
其他好文 时间:
2014-07-10 19:35:18
阅读次数:
213
时间限制:0.25s空间限制:4M题意: 给出 n*m (1≤n、m≤9)的方格棋盘,用 1*2 的矩形的骨牌和 L 形的(2*2 的去掉一个角)骨牌不重叠地覆盖,求覆盖满的方案数。 Solution: 还是状态压缩,这次的情况比较多,要全部列出。 b1,b2分别代表上下两行...
分类:
其他好文 时间:
2014-07-10 15:23:08
阅读次数:
224
题目链接:hdu 4856 Tunnels
题目大意:给定一张图,图上有M个管道,管道给定入口和出口,单向,现在有人想要体验下这M个管道,问最短需要移动的距离,起点未定。
解题思路:首先用bfs处理出两两管道之间移动的距离,然后后用状态压缩求出最短代价,dp[i][j],i表示的已经走过的管道,j是当前所在的管道。
#include
#include
#include
#inc...
分类:
其他好文 时间:
2014-07-09 10:47:11
阅读次数:
248
题意:给你N*N的网格,‘.’表示可以走,‘#’表示不能走,m条管道,每条管道有起点和终点坐标,
Bob每次可以走到相邻的网格花费1s,问Bob走完m条管道要花多少时间;Bob在管道内不计算时间
即计算Bob从管道 i 的出口走到管道 j 的入口的时间Dis(e[i],s[j])的最小和,起点可以任意;
思路:看了题解说是状态压缩DP然后深入理解了下。
首先...
分类:
其他好文 时间:
2014-07-09 10:14:02
阅读次数:
234