匈牙利算法
_beginend
这个作者很懒,什么都没留下…
展开
-
bzoj 1562: [NOI2009]变换序列 匈牙利算法
题意 N≤10000分析一个比较显然的二分图匹配模型。一开始想的dinic,但如果要构造字典序最小的话,需要O(n^2)的复杂度。于是就被逼着去又学了一波匈牙利算法。 要字典序最小的话,可以在连边的时候,把边按照终点排序,这样的话每次都是优先找最小的那条边增广。然后我们只要从后往前找增广路,就可以保证字典序最小了。正确性的话自己yy一下即可。代码#include<iostream>#inclu原创 2017-10-09 11:18:08 · 330 阅读 · 0 评论 -
51nod 1551 集合交易 匈牙利算法+最大权闭合子图
题意市场中有n个集合在卖。我们想买到满足以下要求的一些集合,所买到集合的个数要等于所有买到的集合合并后的元素的个数。 每个集合有相应的价格,要使买到的集合花费最小。 这里我们的集合有一个特点:对于任意整数k(k>0),k个集合的并集中,元素的个数不会小于k个。 现在让你去市场里买一些满足以上条件集合,可以一个都不买。 1≤n≤300分析我好菜呀~~根据任选k个集合其并集大小不小于k的性质,可原创 2017-10-31 07:56:37 · 404 阅读 · 0 评论 -
51nod 1164 最高的奖励 V2 贪心+匈牙利算法
题意有N个任务,每个任务有一个最早开始时间,最晚结束时间以及一个对应的奖励。在开始时间之后,结束时间之前完成该任务,就可以获得对应的奖励。完成每一个任务所需的时间都是1个单位时间。有时候完成所有任务是不可能的,因为时间上可能会有冲突,这需要你来取舍。求能够获得的最高奖励。如果某个任务的开始时间 = 结束时间,则表示该任务只能在那一天完成。 2 <= N <= 5000,1 <= S[i] <= E原创 2017-11-06 08:32:12 · 633 阅读 · 0 评论 -
bzoj 2437: [Noi2011]兔兔与蛋蛋 博弈论+二分图匹配
题意 n,m分析如果相邻格子之间有边,那么这就是一个二分图。不妨把起点也看成黑色,那么显然每个点每条边只能被走一次,这就变成了一个二分图博弈问题。 当起点必然是最大匹配中的边则先手必胜。因为先手可以一直沿着匹配边走,如果后手走到了某个不匹配点,则与起点必然是匹配点不符,故先手必胜。 若起点可能不是最大匹配中的边,则后手必胜。因为无论先手怎么走都会走到一个匹配点,后手可以沿着匹原创 2018-01-10 20:10:08 · 357 阅读 · 0 评论 -
AtCoder Regular Contest 080 F - Prime Flip 线性筛+匈牙利算法
题意有一个无限长的01序列,其中n个位置上是1,其余都是0。每次可以选择一个长度为奇素数的区间,然后将这个区间内的元素取反。问最少多少步后可以将整个序列变为0。 n<=100,ai<=10^7分析首先差分一下,不难发现1的个数一定是偶数,那么操作就变成了每次可以把两个位置[l-1,r]同时取反。 现在问题就变成了让这偶数个1两两配对,使得总操作数最小。 对于两个数...原创 2018-02-18 23:20:03 · 377 阅读 · 0 评论 -
LibreOJ #2574.「TJOI2018」智力竞赛 floyd+最小可重路径覆盖
题意给一个m个点的有向图,问能否用n+1条链来覆盖所有点。不能的话,问所有不能覆盖的点中,权值最小的点的权值最大是多少。 n≤50,m≤500n≤50,m≤500n\le50,m\le500分析一开始看成了每次选一个点,然后它能到达的所有点都会被覆盖,想了半天都不会做。如果有人会做请告诉我~ 先二分答案,然后就变成了最小可重路径覆盖问题。 对于不可重的最小路径覆盖问题,可以直接二...原创 2018-05-22 19:48:27 · 390 阅读 · 0 评论