跳舞链
霜刃未曾试
这个作者很懒,什么都没留下…
展开
-
POJ 3740 Easy Finding 跳舞链模板
题目:http://poj.org/problem?id=3740题意:给出一个n∗mn*m的0101矩阵,问能不能够选出来若干行,使每列恰好只有一个11思路:跳舞链模板题。代码中其实把方案记录在ans数组中,要方案的话打印ans数组即可#include <iostream> #include <cstdio> #include <cstring> #include <algorithm>using原创 2017-08-13 19:37:05 · 297 阅读 · 0 评论 -
HDU 3663 Power Stations DLX精确覆盖
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3663题意:有nn个城市,有mm对直接相连关系,每个城市有一个发电站,每个发电站都有一个限定的工作时间,只能在限定的时间内使用且一旦关闭就不能再使用,每个发电站只能向自己和直接相连的城市送电,每个城市只能接受一个发电站的输送的电,否则就完蛋。选择一个发电站工作方案,在dd天内使所有城市都有电,不能满足则输出N原创 2017-08-21 17:25:23 · 291 阅读 · 0 评论 -
HDU 5046 Airport DLX多重覆盖
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5046题意:有n个城市在二维平面上,任意两个城市间的距离为曼哈顿距离,现在在n个城市中选出k个设置机场,要求覆盖全部n个城市,问覆盖半径最小为多少思路:跟hdu 3656基本一样,只需要变换一下计算距离的公式即可,注意会爆int#include <bits/stdc++.h>using namespace s原创 2017-08-21 14:56:46 · 236 阅读 · 0 评论 -
HDU 3656 Fire station DLX多重覆盖
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3656题意:有n个城市在二维平面上,要选一些城市建消防站,不超过m个,消防站要把所有城市覆盖住,那么覆盖半径最小为多少?如果某个城市有消防站,那么这个城市和消防站的距离为0思路:明显的思路是二分半径用DLX判断是否可行,但是这样会超时,我们发现,答案一定是某两个城市之间的距离,因此预处理出所有城市之间的距离并原创 2017-08-21 14:18:16 · 315 阅读 · 0 评论 -
HDU 2295 Radar DLX重复覆盖
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2295题意:有n个城市在二维平面上,还有m个地点,从这m个地点中选出不超过k个放置雷达,雷达有一定的覆盖半径,问半径最小为多少时雷达可以覆盖所有城市思路:二分枚举半径,用DLX重复覆盖判断能否选出不超过k个雷达覆盖所有城市#include <iostream> #include <cstdio> #inclu原创 2017-08-21 14:03:10 · 242 阅读 · 0 评论 -
POJ 3076 Sudoku 精确覆盖问题DLX
题目:http://poj.org/problem?id=3076题意:16宫格,用大写字母A~P填充,输出一种方案思路跳舞链。注意建列约束的时候,按照存在性、行、列、块的顺序比行、列、块、存在性的顺序建约束快了差不多10倍,很迷。。。#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #incl原创 2017-08-14 10:51:26 · 383 阅读 · 0 评论 -
FZU 1686 神龙的难题 重复覆盖问题
题目:http://acm.fzu.edu.cn/problem.php?pid=1686题意:Problem Description 这是个剑与魔法的世界.英雄和魔物同在,动荡和安定并存.但总的来说,库尔特王国是个安宁的国家,人民安居乐业,魔物也比较少.但是.总有一些魔物不时会进入城市附近,干扰人民的生活.就要有一些人出来守护居民们不被魔物侵害.魔法使艾米莉就是这样的一个人.她骑着她的坐骑,神龙原创 2017-08-21 10:04:03 · 309 阅读 · 0 评论 -
ZOJ 3209 Treasure Map DLX精确覆盖
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3209题意:有一个n*m的矩形,现在有p个碎片,每个碎片精确的覆盖某个区域,问最少需要多少碎片可以恰好覆盖这个矩形,要求任意碎片之间不能有重叠的部分思路:可以发现矩形的范围比较小,那么把矩形内的点都抽象出来,碎片内的点都抽象出来,碎片内的覆盖对应的矩形中的点,就是精确覆盖原创 2017-08-21 09:58:20 · 286 阅读 · 0 评论 -
POJ 2676 Sudoku 跳舞链 || dfs
题目:http://poj.org/problem?id=2676题意:数独。。。思路:跳舞链水过,用dfs也可以过 跳舞链(15ms):#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath>using namespace std;const int X = 100原创 2017-08-13 21:11:42 · 274 阅读 · 0 评论 -
POJ 3074 Sudoku 转化精确覆盖问题DLX
题目:http://poj.org/problem?id=3074题意:每次给出一行8181个字符,代表一个9∗99*9的数独矩阵,其中".""."代表没有填数字,要求把这个数独矩阵填满,并输出出来,输出同样是一行思路:大概我学跳舞链的初衷就是为了解数独问题?之前用dfs写过超时了,然后百度了一个思路很难想的dfs才给过,效率还是不怎么样,然后今天用跳舞链,真是快的飞起。可以发现,数独问题有以下四个原创 2017-08-13 20:41:45 · 409 阅读 · 0 评论 -
HDU 3498 whosyourdaddy DLX重复覆盖
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3498题意:有nn个敌人,其中有mm对敌人互为邻居,当你攻击杀死一个敌人时,同时会杀死它所有的邻居,问最少需要多少次攻击才能杀死所有敌人思路:DLXDLX重复覆盖,题很裸,很容易建图,对于第ii个敌人,如果它和jj互为邻居,则有matrix[i][j]=matrix[j][i]=1matrix[i][j] =原创 2017-08-20 19:57:40 · 283 阅读 · 0 评论 -
HDU 2828 Lamp DLX重复覆盖
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2828题意:有n盏灯和m个开关,一盏灯可以被很多开关控制,有些开关的开和关是颠倒的,对于一盏灯,只要有一个开关是符合条件的,那么这盏灯就会亮。求一组开关的方案,使所有灯是打开的,并输出方案,不能的话输出-1思路:每个开关有开和关两种,所以2*m行n列。因为任一开关的开和关不能并存,所以不能直接套重复覆盖模板,原创 2017-08-21 19:53:40 · 263 阅读 · 0 评论