摘要:
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3144 题解: "这是一个经典的最小割模型" ---引用自别人的博客 。。。。。。。。。。。。。苦酒入喉心作痛,我怎么就是建不出图呢? 先考虑部分限制:1).每个纵轴上只选择一个点。 这个建图比较简单,如下,(把点权放在它上方的边上): (x,y,z) –> (x,y,z+1) ... 阅读全文
摘要:
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=1927 题解: 显然是个DAG 建图和有向图最小路径覆盖的建图有些相似。 都是拆点为 u u'分别表示出点和入点。也都要保证每个点最多有一个出度和一个入度。 但因为带权,要求最小花费,切要满足每个点都去一次,既要满足流量,所以采用最小费用最大流。S -> u :(1,0) 因为每个点都会到达,... 阅读全文
摘要:
题链: http://hihocoder.com/problemset/problem/1394 题解: 有向图最小路径覆盖:最少的路径条数不重不漏的覆盖所有点。 注意到在任意一个最小路径覆盖的方案下,每条路径的起点的入度为 0,终点的出度为 0,而中间的点的入度和出度以及起点的出度和终点的入度都为 1那么把每个点拆为两个: u 和 u',分别代表其 出点 和 入点然后对于 边 u->v, 在 ... 阅读全文
摘要:
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=2127 题解: 和 BZOJ 3984 建图类似(最小割模型)。但是这个建图方法效率有点低。另外这里这个解法比较高效,写得很好很清晰:http://blog.csdn.net/hzj1054689699/article/details/53038620 代码: #include #includ... 阅读全文
摘要:
题链: https://vijos.org/d/ljt12138/p/58c696b8d3d8a16c62a248d4 (要权限号啊。。。用这个交吧) 题解: 题目大意: N*M的矩阵,每个位置有一个人 每个人有两个选择:A和 B,并给出每个人对应的选择后的收益。(a[i][j],b[i][j]) 同时如果一个人和它上下左右相邻的人选择相同,会多收益一个对应的值。... 阅读全文
摘要:
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=1797 题解: 详细的讲解去看http://hzwer.com/3217.html首先跑一个最小割。那么剩下的就是一个结论的事了:对残余网络跑一个Tarjan缩点,1).对于一条满载边u->v,u->v能够出现在某个最小割集中,当且仅当u,v不属于同一个SCC;2).对于一条满载边u->v,u... 阅读全文
摘要:
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=1934 题解: 题目有点迷。 S向为1的点连边,为0的点向T连边,在有关系的两个点之间连双向边。以上边的容量都为1。 然后求最小割,最小割==最大流,dinic实现。代码:#include #include #include #include #define MAXN 350 #define... 阅读全文
摘要:
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3996 题解: 好题啊。(不太熟悉矩阵相关,所以按某些博主的模型转换来理解的)首先,那个式子可以化简为D(某个数)=A * B * A' - C * A' ( A'为 A的倒置矩阵) 因为 A 为 01 矩阵,把其考虑为 N个物品选或不选,C[i]对应为i物品的花费,而B[i,j]对应为同时选... 阅读全文
摘要:
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3931 题解: 在最短路图上跑网络流,要开long long(无奈 BZOJ AC 不了,洛谷上 wa 了一个点。改不出来了诶) 代码: #include #include #include #include #define INF 0x3f3f3f3f #define ll long lon... 阅读全文
摘要:
题链: http://poj.org/problem?id=2125 题解: 最小割 + 输出割方案。建图:拆点,每个题拆为 i 和 i'分别表示其的入点和出点建立超源 S和超汇 T。S -> i :(outi[i]) 割了这个边相当于选择了 i-i'-> T :(ini[i]) 割了这个边相当于选择了 i+u -> v':(INF)然后求Dinic跑最大流求最小割。 至于求方案,首先显然割的边... 阅读全文
摘要:
题链: http://codeforces.com/problemset/problem/280/D 题解: 神题,巨恶心。(把原来的那个dp题升级为:序列带修 + 多次询问区间[l,r]内取不超过k段的不重叠子串,使得其和最大)。按费用流的思路来看,建图方法如下: 每个点拆成两个点 i , i' ,建立超源 S和超汇 Ti -> i' : (1,a[i])S -> i : (1,0)i'-> ... 阅读全文
摘要:
●题链: https://www.luogu.org/problemnew/show/1251 ●题解: 一点启示:建图时要考虑到流量问题,即为了方便使用最小费用最大流算法,要把流量最大时为最终目的考虑进建图。 拆点,每天拆为两个点i, i',表示每天开始和每天结束 (s,i,ai,P):在第i天最 阅读全文
摘要:
●题链: https://www.luogu.org/problem/lists?name=1343 ●题解: 最大流裸题,dinic实现。加了个当前弧优化。 代码: 阅读全文
摘要:
今天把之前的随笔分了一下类,怎么文章的格式就都乱了?? 诶,算了算了,不管了。 阅读全文