D. 网络攻防
题意:一张无向图,求至多删除
首先考虑
对于
考虑
-
两条都是非树边
显然所有点都可以通过树边连通,没有方案。
-
一条树边,一条非树边
首先非树边一定不是桥边。
两种情况:
若树边是桥边,那么非树边显然可以任选。 若树边不是桥边,一定存在至少 条跨过它的非树边(不然就是桥了),那么在生成树中实际上已经分为两个连通块,我们需要保证此时连通两个连通块的非树边不超过 条(即跨过该边的非树边),如果有,那么方案加一。(此时不管是判断小于 或等于 都能够得到答案) -
两条都是树边
两种情况:
若至少有一条是桥边,总方案就是选树边的方案减去一条桥边都没选的方案。 若都不是桥边,此时是该题的瓶颈,我们需要一个结论:删除树边 , 后原图不连通的充要条件为覆盖了边
的非树边集 与覆盖了边 的非树边集 满足 = 。简单来说就是删去两条边后,生成树上分为了三个连通块,画图可知,唯一不连通的方式即为两个连通块相连,剩下一个连通块孤立。
对于有桥边的方案都较为好求,我们考虑不是桥边的情况如何求解。
对于一条树边,一条非树边,我们需要求出跨过该树边的非树边数量,考虑枚举每条非树边
对于两条树边,我们需要知道每条边被哪些边跨过,暴力的做法容易实现,直接把
我们考虑让每个方案都得到一个唯一的权值,考虑随机化。将每条非树边都附上一个
用 unordered_map 统计答案,复杂度即为树上差分的复杂度
总结:对于连通性,我们可以求桥边,还可以做生成树,此时树上的性质更多:桥边在树上,每个点有唯一路径,并且将边分为非树边和树边两种。由于
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具