随笔分类 - 图论
摘要:参考博客: https://www.luogu.com.cn/blog/Mogician/Network-Flow-Guide 可以先了解了解johnson全源最短路算法。 核心思想为给每个点一个顶标,改边权为$h[x]+w-h[y]$。 如果顶标设的好(设为最短路),就可以保证边权非负,然后跑di
阅读全文
摘要:https://codeforces.com/contest/1186/problem/F 题解: 看到这样的限制不难联想到欧拉回路(一看就是倒着造的题)。 对每个联通块分开考虑。 考虑如果所有点都是偶数,那么随便找一个欧拉回路,交叉染色即可。 如果有奇点,建一个新点,奇点向新建中转点连虚边,然后跑
阅读全文
摘要:https://darkbzoj.tk/problem/2095 https://blog.csdn.net/commonc/article/details/52442882 题解: pty说做过,但我不知道什么做过。 考虑二分答案,问题转换这个: 有一些有向边和无向边,你要给无向边定向,使得每个点
阅读全文
摘要:曾经的博客: https://blog.csdn.net/cold_chair/article/details/77200459 板题: https://www.luogu.com.cn/problem/P5540 Code: #include<bits/stdc++.h> #define fo(i
阅读全文
摘要:参考博客: https://blog.csdn.net/izumi_hanako/article/details/78082544 我以前的博客: https://blog.csdn.net/Cold_Chair/article/details/79918157 1.割点 对于一个无向连通图,如果有
阅读全文
摘要:https://loj.ac/problem/576 题解: 考虑询问了区间$[l,r]$,就知道了和,也就知道了$s[r]$和$s[l-1]$的差。 那么给$r$和$l-1$连一条边,我们相当于要搞出点为$0..n$的最小生成树。 运用kruskal的想法,每次找最小的连接不同联通块的边,发现一定
阅读全文
摘要:http://codeforces.com/problemset/problem/223/E 题解: 本题做法: 因为是个连通图,可以神奇的转换: 1.有一汇点T,每个点有一个流量朝汇点流,可以发现每个点的出流-入流=1(自己多的1) 2.从汇点T开始dfs,随便保留一个生成树作为流量树,发现一条边
阅读全文
摘要:http://uoj.ac/problem/181 题解: 这个需要知道竞赛图统计强联通分量的个数的思路(套路)。 考虑竞赛图缩图之后是一条链,枚举这条链的一条边,把图分为左右两部分,之间的边是单向的就数量+1。 这题n比较大,不能暴力$O(2^n)$。 但是可以对每个特殊边的联通块做一遍,那么其它
阅读全文
摘要:https://loj.ac/problem/2084 发现当c=0的时候,我们可以选择把角上的一个点围起来使得答案$\le 2$ 所以大胆猜想任何时候答案$\le 2$ 什么时候是 1呢?$c\le 2$且这些点相邻。 什么时候是0呢?白点一开始就不连通。 什么时候是1呢?白点中有桥点。 其它时候
阅读全文
摘要:http://codeforces.com/contest/1340/problem/C 我完了,连普及的题都不会做。 设$f[i][j]$表示在$j$时刻到$i$,最少多少个红绿灯回合。 发现i只用往i 1和i+1走,设$t=|x1 x2|$,则$j+t define fo(i, x, y) fo
阅读全文
摘要:https://loj.ac/problem/2524 类似于NOI ONline T1, 对于一棵树,不难发现,当黑点个数为奇数时,一定无解,为偶数时,一定可以调整出唯一一组解。 如果额外加一些非树边,那么不管非树边怎么选,树边都有办法调整,所以方案数是$2^{非树边数}$ 考虑删掉一个点时,也就
阅读全文
摘要:https://loj.ac/problem/2977 暴力:状态记录当前选了哪些颜色的点,用斯坦纳树去转移,应该能过个40分。 对于第2问,考虑先二分答案mid,把mid的取值设为1,相当于在联通块点数最少的同时,权值和最小。 若最小权值和=mid$,调整二分区间即可。 对于这种恰好选k个不同的颜
阅读全文
摘要:https://gmoj.net/senior/ main/show/6525 若没有洞的限制,答案显然从每个点出发的极大联通块(联通块的每个点高度小于等于起点高度)的大小和。 那么将高度排序,从小到大用并查集维护即可。 现在要看有没有洞,考虑平面图欧拉公式: $V+F=E+2$,其中$V$是点
阅读全文
摘要:https://www.luogu.com.cn/problem/P4294 斯坦纳树做什么? 一个图,其中有$k$个关键点,选一个生成树把这些关键点连起来,求最小的生成树边权和。 $k$通常比较小。 斯坦纳树怎么做? 记$f[i][S]$为,现在有一棵以$i$为根的生成树,$S\in[0,2^k)
阅读全文
摘要:https://loj.ac/problem/3155 题解: 考虑先预处理一个数组mx[S],其中S是一个二进制状态,记录着四个方向是否有病毒,在这种情况下,在那个字符串环上的最长连续段(注意这是个无限长的环,最长连续段可以是+∞)。 那么得到一种暴力的做法,枚举起点,然后宽搜,对于每一个点,在预
阅读全文
摘要:https://codeforces.com/contest/1284/problem/F 题目大意: 有两个大小为n的树T1和T2. T2中的每条边(u, v)可以匹配T1中u到v路径上的所有边。 求最大匹配,并给出方案。 $1 define fo(i, x, y) for(int i = x,
阅读全文
摘要:Description: 题解: 显然满足二分性。 并且每一条边要不选l要不选r。 二分的那条链肯定要选l。 考虑有两个人在走最短路,一个人一开始必须走二分的那条链,要求第一个人走的比第二个人快。 安排的话也比较简单,第一人先走到这条边就给l,第二个人就给r。 还有一种想法,先只给二分的链l,其它都
阅读全文

浙公网安备 33010602011771号