ACM-图论
weixin_39399748
这个作者很懒,什么都没留下…
展开
-
Codeforces 949C Data Center Maintenance 强连通分量缩点
C. Data Center Maintenancetime limit per test1 secondmemory limit per test512 megabytesinputstandard inputoutputstandard outputBigData Inc. is a corporation that has n data centers indexed from 1 to n...原创 2018-05-12 18:49:09 · 254 阅读 · 0 评论 -
HDU 1281 棋盘游戏 二分图匹配
翻了翻网页,看见有找最大匹配关键点的,然而也不懂。这个题,枚举每个点,然后删了它,如果最大匹配数变小了,那它就是最大匹配必须的点无疑了。#include<iostream>#include<cstdio>#include<string.h>#include<algorithm>using namespace std;int n,m,...原创 2018-07-29 16:43:02 · 137 阅读 · 0 评论 -
HDU 1350 Taxi Cab Scheme 最小路径覆盖
最小不相交路径覆盖了解一下:每一条路径经过的顶点各不相同。最小路径覆盖=原图的结点数-新图的最大匹配数。#include<iostream>#include<cstdio>#include<string.h>#include<algorithm>#include<cmath>using namespace std;in...原创 2018-07-29 16:51:17 · 126 阅读 · 0 评论 -
HDU 1598 find the most comfortable road 并查集+贪心
对边做一个排序,然后对于每一个询问,每次都去枚举权值最小的边,再做最小生成树,一旦询问中的点联通了,我们就可以认为在当前最小边权值的情况下,舒适度最大的情况已经达到了。#include<iostream>#include<cstdio>#include<string.h>#include<algorithm>#include<cm...原创 2018-07-29 16:54:49 · 149 阅读 · 0 评论 -
HDU 1384 Intervals 差分约束
是这样的,差分约束的建图方法就不必细说了,建图的时候,要把每个点看成是在某个区间里取了多少点:比如,d[i]就表示从1到i有多少个点被取到了。这样,对于一个区间[i,j]和c,我们有d[j]-d[i]>=c。这样就很好建图了,然后还有一点,0<=d[i]-d[i-1]<=1,这是隐含的条件,忽略了很要命的。最后,套上一个spfa跑一跑。经典差分约束喜欢加一个源点好让图联通,但...原创 2018-07-22 20:45:50 · 126 阅读 · 0 评论 -
HDU 3047 Zjnu Stadium 带权并查集
众所周知,我们做这种种类并查集,喜欢开一个数组,用向量的思想去记录和计算当前点和它祖先的关系。这个题也一样,按部就班把式子写上就行了,建图也很容易想。#include<iostream>#include<cstdio>#include<string.h>#include<algorithm>using namespace std;i...原创 2018-07-22 20:50:36 · 139 阅读 · 0 评论 -
HDU 3038 How Many Answers Are Wrong 带权并查集
最近一连做了好几道就着区间建图的图论题,发现建图的时候都很喜欢把区间看成两个前缀和之差,我小叮当长见识了。这道题也是这样。一开始的时候想让r数组表示当前点到其祖先这个区间(包含两端点),后来要路径压缩了,发现情况不大对头。。。前缀和大法好!果然应该记录当前点与祖先的前缀和之差!#include<iostream>#include<cstdio>#include&l...原创 2018-07-22 21:01:44 · 81 阅读 · 0 评论 -
HDU 1317 XYZZY SPFA
这题一举刷新了我对SPFA的认知,不同的入队次数有不同的意义,我小叮当先记下了。#include<iostream>#include<cstdio>#include<string.h>#include<algorithm>#include<queue>using namespace std;int dist[105],...原创 2018-07-22 21:18:44 · 139 阅读 · 0 评论 -
HDU 2473Junk-Mail Filter 并查集
一开始我犯的错误是这样的:删除节点的父亲设成一个没用过的新节点。这种做法非常之错误,因为一旦进行路径压缩,煞费苦心申请的新节点就全完了。我们一想,为啥删除并查集里的节点这么难呢?都是因为有很多祖先节点呀!所以我们一开始就不把祖先结点设成实实在在的结点,这样就干啥都方便了。#include<iostream>#include<cstdio>#include<s...原创 2018-07-22 21:22:58 · 179 阅读 · 0 评论 -
HDU 1829 A Bug's Life 带权并查集
之前也写过两次带权并查集,但是并没有理解新开那个记录权值的数组的意义,不知怎么当时都歪打正着把题给(凭人品)做出来了。今天又按照以前错误的想法去做带权并查集,果不其然一下子就做错了。于是虚心学习,了解到新开的那个数组是用来记录当前节点和祖先结点的关系的。于是更新了一下合并和路径压缩用的公式,把题交上了。#include<iostream>#include<cstdio&g...原创 2018-07-22 21:27:54 · 181 阅读 · 0 评论 -
Gym 101655B Bones’s Battery floyed+二分
先跑一遍floyed,求出两两点对之间的最小距离。然后这个最小距离就相当于一个最新的地图了,新地图里,小于当前二分枚举值,就充1次电,大于这个值,就冲无穷大次电,起点终点相等,就充0次电。再跑一次floyed,看看当前二分枚举的容量符不符合条件。#include<iostream>#include<cstdio>#include<string.h>#...原创 2018-07-30 21:16:34 · 195 阅读 · 0 评论 -
HDU 1529 Cashier Employment 差分约束+二分
我是这么做错的,统计了每个区间里可以开始干活的人,以及每个小时里需要的人,然后从0到24建了一堆边。这么一来,一旦一天过去第二天开始,本来应该由用一个人完成的工作就会算成两个人。就算是把能够循环的一天展开成两天,这个问题还是有。所以应该采取正确的做法,用不等式表达是这样的:s[ l ] - s[ l - 1 ] >= 0 ( 0 <= l <= 23 )s[ l ] ...原创 2018-07-29 16:39:37 · 147 阅读 · 0 评论 -
HDU 1385 Minimum Transport Cost 最短路+字符串处理
之前做了一道题,也是要求输出路径是字典树最小的,我记得是个状压dp吧。今天看见题目里也让输出字典树最小的路径,顿时魔怔了,心里坚信这也能通过枚举顺序的控制来自动实现,于是就wa了。其实想想也是,状压dp的时候,用于产生后面状态的现有状态,字典序已经是最小的了,再通过枚举下一个字典序最小的符合要求的点,那当然很正确啰,但是用在最短路上就不行。应该就把路径写成字符串,再写个递归去比较字符串。vo...原创 2018-07-25 20:41:24 · 151 阅读 · 0 评论 -
CodeForces 1009D Relatively Prime Graph 贪心+枚举
这是一道伪图论题,像我这样的弱鸡,果不其然一上来就被坑了。其实跟图论关系不大,倒是应该好好算算复杂度。m是有限制的,如果输出impossible,必定在枚举的过程中复杂度不大于m的范围。如果有答案,到了m就可以break。毕竟我们从1开始枚举的时候,第一轮枚举下来,肯定是已经得到了一个连通图,放射状的那种,于是丝毫不必担心break的时候图不符合要求的情况。 ...原创 2018-07-17 10:55:51 · 219 阅读 · 0 评论 -
CodeForces 1000E We Need More Bosses 求割边+缩点+树的直径
E. We Need More Bossestime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYour friend is developing a computer game. He has already decided how the ga...原创 2018-07-04 23:21:59 · 315 阅读 · 0 评论 -
Aizu 2249 最短路
King Mercer is the king of ACM kingdom. There are one capital and some cities in his kingdom. Amazingly, there are no roads in the kingdom now. Recently, he planned to construct roads between the capi...原创 2018-07-17 21:19:42 · 243 阅读 · 0 评论 -
CodeForces 987D Fair BFS
A. Fairtime limit per test2 secondsmemory limit per test512 megabytesinputstandard inputoutputstandard outputSome company is going to hold a fair in Byteland. There are nn towns in Byteland and mm two...原创 2018-07-05 21:52:25 · 130 阅读 · 0 评论 -
CodeForces 986C AND Graph 位运算+弱连通分量
C. AND Graphtime limit per test:4 secondsmemory limit per test:256 megabytesinput:standard inputoutput:standard outputYou are given a set of size m with integer elements between 0 and 2n−1 inclusive. ...原创 2018-07-12 21:12:58 · 260 阅读 · 0 评论 -
HDU 1217 Arbitrage 最短路
floyed算法的变形。#include<iostream>#include<cstdio>#include<string.h>#include<algorithm>#include<queue>#include<map>#include<string>using namespace std;原创 2018-07-19 23:32:14 · 111 阅读 · 0 评论 -
HDU 1045 Fire Net 二分图匹配
机智建图法。行为一个集合里的点,不能互相攻击的行算两个;列为另一个集合里的点。这样做一个二分图匹配,一个行就不能跟多个列匹配,避免出现互相攻击的状况,相当于做了一次缩点。#include<iostream>#include<cstdio>#include<string.h>#include<algorithm>using namespa...原创 2018-07-19 23:35:19 · 120 阅读 · 0 评论 -
HDU 1811 Rank of Tetris 并查集+拓扑排序
我这号菜鸡,上来又用一个蠢萌的算法WA掉了这道题,就是把相同级别的点,也按照编号的大小做一个拓扑排序。其实这用手指头肚想想都不可能对,一定会把原本conflict的情况算成ok的。所以转而使用正常人会用的方法,使用并查集把相等级别的点合成一个点,这样很好。#include<iostream>#include<cstdio>#include<string.h&...原创 2018-07-19 23:39:13 · 138 阅读 · 0 评论 -
HDU 1224 Free DIY Tour DAG最长路
DAG最长路可以用动态规划或者spfa的方法求。逛了一圈论坛,看见有人说dijkstra也可以,但我自己写了个dijkstra却WA了,还是太菜了呀。#include<iostream>#include<cstdio>#include<string.h>#include<algorithm>#include<stack>u...原创 2018-07-19 23:42:03 · 145 阅读 · 0 评论 -
HDU 1150 Machine Schedule 最小点覆盖
想一想最小点覆盖时的那种性质,很容易就会产生要把能生产一种产品的机器连线的想法。我今天看这个题,又像以前一样,看着看着就自动把题意给忘了然后自己进行了脑补,误以为一个产品能用一台机器的一种以上模式生产,结果不能建图,以后一定引以为戒!另一个神奇之处就是mod_0这个事。显然,能用mod_0及解决的产品根本就不用参与匹配。一开始想在一开始对产品进行处理,但其实这很傻,聪明的做法是进行匈牙利算法的...原创 2018-07-25 20:35:55 · 126 阅读 · 0 评论 -
POJ 1860 Currency Exchange spfa
注意,使用spfa算法的时候,一个点进队n+2次说明所有与其相关的点均已经得到了正环的收益,然而除此之外什么都不能说明,在这道题上,也就不可能说明此时某点的值是否可以大于它的初始值。spfa是个神奇的算法,的空一定要好好研究一番。#include<iostream>#include<cstdio>#include<string.h>#include&...原创 2018-07-30 21:30:16 · 204 阅读 · 0 评论