图的连通性 学习笔记

https://blog.csdn.net/weixin_43848437/article/details/105133155

首先上这个。


CF118E Bertown roads

考虑什么时候不存在。有桥肯定不存在。

那没有桥一定存在吗?肯定就存在了。从根通过dfs树可以到达任何点,任何点也可以通过一些树边和非树边到根,否则就有桥。

dfs树的题一般都是这种两个条件然后其中一个一定成立。


CF858F Wizard's Tour

可以发现这种路径问题在树上很常见。

考虑dfs树。

考虑中间点,从叶子往根贪心,最多留出一条连向父亲的,在父亲处处理即可。


CF1391E Pairs of Pairs

和上面类似。肯定其中一种一定满足。

dfs树。

如果深度大于二分之n直接输出。

否则直接选择同深度两个叶子,它们之间一定没有边。每个深度最多一个点选不到。明显可以。


SP2878

点双中有一个奇环则所有点都在一个奇环中。建反图跑点双拿出来二分图染色即可。


CF732F Tourist Reform

类似上面,边双内部直接做即可。

然后割边和缩出来的新点构成一个树。

第一种想法是二分答案。考虑某个子树的根,如果不满足条件就往上指把条件传给父亲,否则就可以往下。

然而更简单的方法是:由于只有n-1条边,必然有一个点不能到其它点,那这个点是最大点即为最优。


UVA1327

不太明白。直接把匹配的从右往左连边,喜欢从左往右连,跑强连通,一个强连通内互相可喜欢。


P2860 [USACO06JAN]Redundant Paths G

发现点双内已经满足条件,每连一套边可以使两个变双合成一个。

答案就是点双数除以二向上取整。

posted @   lei_yu  阅读(36)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
点击右上角即可分享
微信分享提示