DLX
文章平均质量分 86
ophunter
不会DP!
展开
-
POJ3740Easy Finding(DLX入门)
->题目请戳这里题目大意:给一个m*n的01矩阵,求是否存在若干行,使这些行中的1覆盖所有的列恰好1次。题目分析:裸的精确覆盖题目,建图+模版= AC。需要用到dance links这种数据结构优化。dancing links也是最近才学,今天刚弄明白,这此特别感谢yyd大牛,帮我解决了一个小瓶颈。关于dancing links,仔细研究才能发现dancing lingks是如此绝妙的原创 2013-05-31 23:12:33 · 995 阅读 · 0 评论 -
poj1084Square Destroyer(LDX解重复覆盖)
题目请戳这里题目大意:给一个n*n的用单位长度的木棍拼起来的网格图,给每个木棍按图示编号,编号范围1~2*n*(n+1).现在已知图中已经去掉了k个木棍,求还要至少去掉几根木棍能使网格图中不存在正方形.即破坏图中所有的正方形.n不超过5.题目分析:n太小了啦,直接爆搜!dancing links优化之.将之转化成一个重复覆盖的模型.n*n的完全网格图中存在n*(n+1)*(2*n+1)原创 2013-12-18 21:53:33 · 1715 阅读 · 3 评论 -
2013 Asia Hangzhou Regional Contest--hdu4770Lights Against Dudely(DLX)
题目请戳这里题目大意:给一个n*m的格子,每个格子可以是'#'或者是'.'。'.'的数量不超过15个。现在要在'.'的位置放一种灯,假设放在(x,y)的位置。那么这盏灯只能点亮(x,y),(x-1,y),(x,y + 1),这3个位置。现在有一盏灯比较特殊,可以绕(x,y)旋转0度,90度,180度或者270度。现在给这样n*m的格局,求最少放置多少灯能覆盖所有的'.'。每个'.'的位置只能放原创 2013-11-10 16:59:46 · 2034 阅读 · 0 评论 -
2013 ACM/ICPC Asia Regional Chengdu Online&hdu4735Little Wish~ lyrical step~(DLX解重复覆盖)
好吧,其实这题把这题代码改一点也能过。。。。说好的没有原题呢题目请戳这里题目大意:给一颗树,有n个点,每个点代表一个性别,两点之间的边上有边权w,表示2点之间的距离。现在已知如果某个点是男的,那么与他距离不超过D的点都被他罩着。现在要使所有的女的都至少被一个男的罩,求最少要交换几对男女的位置。题目分析:求最小点支配集。跟这题区别大么。不过多了点约束条件而已。用dancingling原创 2013-09-19 00:17:23 · 1624 阅读 · 0 评论 -
hdu3957Street Fighter(DLX重复覆盖)
题目请戳这里题目大意:在游戏Street Fighter(街头霸王)中有若干个角色,每个角色有1~2个模式,每个角色在某个模式下可以KO另外某些角色的某些模式。现在给n个角色和他们的模式以及各自在相应模式下能KO的对手及对手的模式。求最少需要几个角色能KO所有其他角色。题目分析:重复覆盖问题,DLX解决。因为每个角色有1~2个模式,所以抽象出2*n行和2*n列。直接建图跑DLX即可。需原创 2013-10-06 15:46:49 · 992 阅读 · 0 评论 -
hdu3656Fire station(DLX重复覆盖 + 二分)
题目请戳这里题目大意:一个城市n个点,现在要建m个消防站,消防站建在给定的n个点中。求建m个消防站后,m个消防站要覆盖所有的n个点的覆盖半径最小。题目分析:重复覆盖问题,DLX解决。不过要求覆盖半径最小,需要二分。虽然给的范围并不大,DLX毕竟还是暴力搜索,而且精度有6位小数,因此直接二分距离的话会TLE!解决方案是将图中任意2点的距离记录下来,去重后二分已知的距离。因为消防站建在给定的n原创 2013-10-05 23:45:42 · 1092 阅读 · 0 评论 -
hdu3663Power Stations(DLX解精确覆盖)
题目请戳这里题目大意:一个国家有n个城市,每个城市有一个电站。n个城市之间有m条电线,通过电线相连的城市之间可以互相通电。现在给出每个城市发电站工作的时间段,要求使所有的城市在未来连续D小时都通电并且保证每个城市只能同时接受一个城市的电(或者自己发电),求每个城市发电站工作时间表,每个城市只能工作一个连续的时间段。题目分析:点支配集转精确覆盖问题,DLX解决。由于所有城市在未来连续D小时都原创 2013-10-05 16:46:46 · 1164 阅读 · 0 评论 -
hdu3498whosyourdaddy(DLX+A*解重复覆盖问题)
谨以此题,献给中秋夜还在默默刷题的孩纸们。。题目请戳这里题目大意:给n个点,m个关系(a,b),表示点a和点b相邻。每个点最多4个相邻点。现在如果消灭某个点,就可以同时消灭与之相邻的点。现在问最少要消灭几个点,能使每个点都至少被消灭一次。题目分析:最小点支配集的求解。NP难问题。好在数据规模不大,搜索可以解决。不过要用dancing links+A*优化。重复覆盖和精确覆盖的区别仅原创 2013-09-18 21:25:36 · 1940 阅读 · 2 评论 -
poj3076Sudoku(我大DLX威武!16*16数独秒解!!)
->题目请戳这里题目大意:16*16数独。题目分析:建模同这篇9*9数独,就不多废话了,详情请见代码:#include #include#include#includeusing namespace std;const int N = 16 * 16 * 16 * 16 * 16 * 4 + 5;//16 * 16 * 16行16 * 16 * 4列int s[N],h[N原创 2013-06-01 19:21:36 · 2136 阅读 · 0 评论 -
poj3074Sudoku(DLX解9*9数独)
->题目请戳这里题目大意:填9*9数独,就不多废话了。题目分析:以前写数独是用搜索做的,略带暴力枚举,代码量比较大,效率也不高,最近学dancing links,用来解决精确覆盖问题,效率蛮高,而且代码非常优雅。关于数独转化成精确覆盖问题,这篇论文讲的很详细,就不在这里班门弄斧了,详情请见代码:#include #include#include#includeusing nam原创 2013-06-01 18:52:59 · 1784 阅读 · 0 评论 -
poj2032Square Carpets(IDA* + dancing links)
题目请戳这里题目大意:给一个H行W列的01矩阵,求最少用多少个正方形框住所有的1.题目分析:又是一个红果果的重复覆盖模型.DLX搞之!枚举矩阵所有的子正方形,全1的话建图.判断全1的时候,用了一个递推,dp[i][j][w][h]表示左上角(i,j)的位置开始长h宽w的矩形中1的个数,这样后面可以迅速判断某个正方形是否全1.不过此题直接搜一直TLE,然后改成迭代加深就比较愉快啦原创 2013-12-18 22:06:34 · 1699 阅读 · 0 评论