![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
-----------图论-----------
文章平均质量分 92
MaxMercer
成都七中学生,OIer
展开
-
UVA1391【LA3713】 经典2-SAT
题意:给出一些宇航员他们的年龄,x是他们的平均年龄,其中A任务只能给年龄大于等于x的人,B任务只能给小于x的人,C任务没有限制。再给出m对人,他们不能同任务。现在要你输出一组符合要求的任务安排。这道题是刘汝佳蓝书上讲了的题,在这里套用他的模板,实在是好用啊…#include<stdio.h>#include<vector>#include<cstring>using namespace std原创 2017-07-13 09:15:40 · 375 阅读 · 0 评论 -
[BZOJ]4950 二分图 + 最大匹配
4950: [Wf2017]Mission ImprobableTime Limit: 1 Sec Memory Limit: 1024 MBSubmit: 146 Solved: 70[Submit][Status][Discuss]Description那是春日里一个天气晴朗的好日子,你准备去见见你的老朋友Patrick,也是你之前的犯罪同伙。Patrick在编程竞赛上豪赌输掉了一大笔钱,...原创 2017-10-12 20:36:56 · 481 阅读 · 0 评论 -
[BZOJ]3140 二分图最大匹配
3140: [Hnoi2013]消毒Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1339 Solved: 588[Submit][Status][Discuss]Description最近在生物实验室工作的小T遇到了大麻烦。 由于实验室最近升级的缘故,他的分格实验皿是一个长方体,其尺寸为a*b*c,a、b、c 均为正原创 2017-10-12 21:42:40 · 346 阅读 · 0 评论 -
[BZOJ]1922 [SDOI2010] 大陆争霸 最短路 + 堆优化
1922: [Sdoi2010]大陆争霸Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1978 Solved: 878[Submit][Status][Discuss]Description在一个遥远的世界里有两个国家:位于大陆西端的杰森国和位于大陆东端的 克里斯国。两个国家的人民分别信仰两个对立的神:杰森国信仰象征黑暗和毁原创 2017-09-22 17:00:37 · 354 阅读 · 0 评论 -
二分图的最小顶点覆盖 和 最大独立集 和 最大团
最小顶点覆盖概念: 如果称选了一个点的话, 就覆盖了所有与这点相连的边. 现在要选出最小的点, 来覆盖二分图中所有边.结论: 最小顶点覆盖 = 二分图最大匹配. 证明: Click最大独立集概念: 选出一些点, 使两两之间没有边, 包含顶点数最多的集合称之为最大独立集.结论: 所有顶点数-最小顶点覆盖. 证明: 因为最小顶点覆盖后。 剩下没匹配的点, 相互之间一定没有边, 否则就可以相连多一条原创 2017-10-13 21:07:56 · 1338 阅读 · 0 评论 -
POJ2692 Kindergarten 最大团 + 补图二分图
KindergartenTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 7362 Accepted: 3628DescriptionIn a kindergarten, there are a lot of kids. All girls of t原创 2017-10-13 21:08:41 · 343 阅读 · 0 评论 -
强连通分量 & 割点/桥 & 点/边双连通分量 [模板]
#include<stdio.h>//强连通分量 void tarjan(int u){ low[u] = dfn[u] = ++ idx; s.push(u); for (int i = h[u]; i; i = e[i].nxt) { int v = e[i].v; if(!dfn[v]) tarjan(v), low[u]原创 2017-11-09 17:16:26 · 288 阅读 · 0 评论 -
支配树[模板]
发个模板不算漏题吧. 今天考了一发必经点… 幸好lemonoil考过, 打了个支配树的板子, 但是当时当且只是因为好背所以背下来了, 关于那几个定理实际上并没有证明. 今天考完后复习了一发虽然也没有证明但是重新理解了一下, 在明白半必经点和必经点的定理后, 已经能较准确的写出板子来, 不想考试的时候憋了半天… 话说今天好像要被婊了… 毕竟学的是lemonoil的板子, 基本上没什么差别, 关键是原创 2017-11-02 21:28:04 · 475 阅读 · 0 评论 -
[UOJ]210 寻找罪犯 2-Sat 前缀和优化
把一个点拆成四个点(罪犯点,非罪犯点,真话点,假话点), 然后前缀和优化2-Sat即可(变为之前全真话点,之前有假话点). 不过看网上说判解可以用scc判? 一发改了后rk1.#include<bits/stdc++.h>#define acce register int#define boc register charusing namespace std;const int maxn原创 2017-12-08 17:14:31 · 283 阅读 · 0 评论 -
[BZOJ]3495 Riddle 2-Sat 前缀和优化
3495: PA2010 RiddleTime Limit: 30 Sec Memory Limit: 512 MBSubmit: 279 Solved: 97[Submit][Status][Discuss]Descriptionk个国家,几个城市,m条边。要求每个国家有且仅有一个首都,每条边两端的城市至少要有一个首都。判断是否有解, 有解输出“TAK”,无解原创 2017-12-08 21:12:03 · 373 阅读 · 0 评论 -
[HDU]2121 Ice_cream’s world II 朱刘算法(不固定根)
就是不固定根的朱刘算法. 建一个虚点向每个点, 权值为sum+1, 若跑出来的结果>2 * sum显然图不连通. 否则-sum即为答案.#includeusing namespace std;typedef long long lnt;const int maxn = 2e3;const lnt inf = 1e14;int pos, cnt, n, m, id[maxn], vis原创 2017-12-09 12:33:57 · 288 阅读 · 0 评论 -
[ZOJ]3209 Treasure Map 跳舞链 精确覆盖
ZOJ 3209 Treasure Map (DLX精确覆盖)Your boss once had got many copies of a treasure map. Unfortunately, all the copies are now broken to many rectangular pieces, and what make it worse, he has lost原创 2017-12-07 11:48:37 · 401 阅读 · 0 评论 -
[HDU]2295 Radar 跳舞链 重复覆盖
Radar这道题的大意就是说有m个监控范围一样的雷达, 监控范围为圆形. 现在给出n个城市的二维坐标, 问能否用<=K个雷达覆盖所有城市, 若果能请求出能覆盖的最小的半径. 又是覆盖问题... 那么要在满足限制的条件下得出最小解, 那一般都是二分答案... 考虑怎么check. 如果二分的是半径, 那么每个雷达能覆盖哪些城市就能够确定... 再看一下数据范围... 搜索可搞. 又要求完全覆盖, 自然想到跳舞链. 雷达为行, 城市为列, 这样就转化模型了. 然后就是裸的重复覆盖.(没要求一个城市只能被一原创 2017-12-07 15:39:29 · 307 阅读 · 0 评论 -
[UVA]1391 Astronauts 2-Sat 朝花夕拾
The Bandulu Space Agency (BSA) has plans for the following three space missions: • Mission A: Landing on Ganymede, the largest moon of Jupiter. • Mission B: Landing on Callisto, the second largest mo原创 2017-12-08 07:57:42 · 317 阅读 · 0 评论 -
[BZOJ]2427 软件安装 O(nm)树形背包
2427: [HAOI2010]软件安装Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1913 Solved: 757[Submit][Status][Discuss]Description现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi。我们希望从中选择一些软件安装到一台磁盘容量为M计算机原创 2018-01-15 17:58:27 · 729 阅读 · 0 评论 -
[HDU]1150 Machine Schedule 二分图 + 最小点覆盖
Machine ScheduleTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 8656 Accepted Submission(s): 4347Problem DescriptionAs we all原创 2017-10-12 19:55:16 · 296 阅读 · 0 评论 -
[BZOJ]4443 [SCOI2015] 小凸玩矩阵 二分答案 + 二分图最大匹配
4443: [Scoi2015]小凸玩矩阵Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1322 Solved: 622[Submit][Status][Discuss]Description小凸和小方是好朋友,小方给小凸一个N*M(NInput第一行给出三个整数N,M,K接下来N行,每行M个数原创 2017-10-12 19:43:03 · 319 阅读 · 0 评论 -
关于平面图到对偶图的转化
闲话哇对偶图真的是个好东西, 昨天考NOI2010的时候前两道很快做完了, 看着t3发呆了1个多小时, 啥也想不出来. 看着网格图突然想到听说bzoj1001狼抓兔子可以用对偶图求解. 对偶图是啥我也不知道, 听说把面看成点, 连边后跑一边最短路就可以了. 但是当时想到这个突然发现自己不会建对偶图, 看时间还有一个多小时, 于是建了8种可能的图, 每一个都跑一遍spfa, 发现有一个可以过样例, 手原创 2017-09-14 10:09:44 · 10668 阅读 · 3 评论 -
对偶图对于平面图最小割的求解(网络流问题)
前言对于平面图和对偶图, 和两者之间的转化, 如果有不明白的:ClickHere.对偶图的求解这是一个s-t平面图. 所谓s-t平面图, 就是一个平面图里有s源点和t汇点. 对于这个图, 我们做一点转化方便求解.这样就多了一个附加面(1 - 4 - 7 - 8 - 1). 我们知道平面图转化为对偶图之后, 对偶图里的点, 对应的是平面图里的面. 我们把刚刚的附加面设为对偶图里的s*, 无界面的点设原创 2017-09-14 10:34:42 · 2331 阅读 · 0 评论 -
[BZOJ]4720 换教室 [NOIP2016] D1T3 期望
4720: [Noip2016]换教室Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 1110 Solved: 577[Submit][Status][Discuss]Description对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程。在可以选择的课程中,有2n节课程安排在n个时间段上。在第原创 2017-09-18 11:24:03 · 536 阅读 · 0 评论 -
[POJ]1895 Bring Them There 网络流 动态加层
一开始感觉这道题是大水题,结果发现每条路径只能经过一次,并且是一天只能经过一次,即第二天就可以又被经过了.完全没有头绪.想到用网络流,但是并不知道如何来建图.默默的点开了别人的题解....动态加层真的是很妙.那么每层的点是什么?两层之间又是如何连边? 我们设花的最少天数为day,从小到大加,每day++即新的一天,我们就在原来的网络上加上一层,两层之间的线路表示一天.这就是动态加层. 对于每一层,都是一个完整的图.每一层都是所有的点,但是我们连边不在本层之间互相连,而原创 2017-07-14 11:44:23 · 548 阅读 · 0 评论 -
[POJ]3164 Command Network 朱刘算法
朱刘算法裸题.附上朱刘算法讲解.原创 2017-07-13 16:09:10 · 364 阅读 · 0 评论 -
[UVA]11478 二分答案+差分约束
二分答案+差分约束.题目大意 就是说你可以进行若干次操作,每次操作将某一点入边权值减少d,出边权值增加d.问在这种情况如何操作使最小的边权最大.题解 每一次操作之间互不影响,所以我们没必要去考虑操作次数,只用考虑最终结果.由于要使最小边权最大,很容易想到二分答案(最小最大问题). 怎么check? 我们二分最小边权x.我们设sum[u]为操作在u上的d之和(或加或减,这里的sum则是最终结果)。对于两个点(u,v),若使(原创 2017-07-13 19:39:26 · 450 阅读 · 0 评论 -
[POJ]2983 Is the Information Reliable? 差分约束判有无解(判负环)
Is the Information Reliable?Time Limit: 3000MS Memory Limit: 131072KTotal Submissions: 14151 Accepted: 4443DescriptionThe galaxy war between the Empire Draco原创 2017-09-20 11:26:04 · 351 阅读 · 0 评论 -
[BZOJ]1977 次小生成树 树上倍增
1977: [BeiJing2010组队]次小生成树 TreeTime Limit: 10 Sec Memory Limit: 512 MBSubmit: 3293 Solved: 853[Submit][Status][Discuss]Description小 C 最近学了很多最小生成树的算法,Prim 算法、Kurskal 算法、消圈算法等等。 正当小 C 洋洋得意原创 2017-09-18 17:16:49 · 480 阅读 · 0 评论 -
[BZOJ]1123 [POI2008]BLO 割点
1123: [POI2008]BLOTime Limit: 10 Sec Memory Limit: 162 MBSubmit: 1301 Solved: 591[Submit][Status][Discuss]DescriptionByteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有t原创 2017-10-09 21:45:40 · 349 阅读 · 0 评论 -
[POJ]2942 圆桌骑士 点双连通分量 + 二分图染色
#include#include#include#includeusing namespace std;#define clear(a) memset(a,0,sizeof(a))#define maxn 1010bool mark[maxn],vis[maxn];int point,all,indexx,cnt,num,n,m,x,y,ans;int h[maxn],col[m原创 2017-07-13 09:04:55 · 502 阅读 · 0 评论 -
[POJ]3352 Road Construction 双连通分量缩点
Road ConstructionTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 12499 Accepted: 6284DescriptionIt's almost summer time, and that means that it's al原创 2017-10-10 20:11:49 · 384 阅读 · 0 评论 -
[HDU]1530 Maximum Clique 最大团问题[模板]
题目: 给出一个无向图, 求出其中的最大团.题解: 最大团是一个NP完全问题...这道题爆搜+优化就能过. 爆搜是枚举所有子图(当然要是团). 优化是加入一个记忆化搜索的数组f, f[i]表示i-n这些点中能组成的最大团点数. 然后记忆化搜的时候如果当前枚举到i时(还没选i)的最大团点数 + dp[i]小于全局最大团(已求得的最大团)的话, 就continue. 还有就是如果当前能选的点+已原创 2017-10-10 22:13:13 · 360 阅读 · 0 评论 -
[BZOJ]1064 [NOI2008] 假面舞会 dfs判环
1064: [Noi2008]假面舞会Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2160 Solved: 1047[Submit][Status][Discuss]Description一年一度的假面舞会又开始了,栋栋也兴致勃勃的参加了今年的舞会。今年的面具都是主办方特别定制的。每个参加舞会的人都可以在入场时选择一 个原创 2017-10-09 21:05:53 · 290 阅读 · 0 评论 -
POJ[1515] Street Directions 桥
Street DirectionsTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 1041 Accepted: 539 Special JudgeDescriptionAccording to the Automobile Collision原创 2017-10-10 18:53:51 · 268 阅读 · 0 评论 -
[BZOJ]1912 [APIO2010] 巡逻 树的直径
1912: [Apio2010]patrol 巡逻Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 1692 Solved: 881[Submit][Status][Discuss]DescriptionInput第一行包含两个整数 n, K(1 ≤ K ≤ 2)。接下来 n – 1行,每行两个整数 a, b, 表示村原创 2018-01-15 21:54:46 · 364 阅读 · 0 评论