题解 CF757F Team Rocket Rises Again
DAG 上的支配树简单题。以下是前置知识。
最短路图
对于一个带权有向图和起点 ,我们先从起点 跑一遍单源最短路。然后对于每条有向边 ,若 ,那么就在新图上从 向 连边。形成的图就是最短路图。
最短路图的简单性质:
-
从 到任意一点 的任意一条最短路的每一条边一定存在在新图中。除此之外的其他边一定不存在。
-
最短路图是一个 DAG。
DAG 上的支配树
可以求 DAG 上任意一点 删除后,起点 无法到达的点的个数。
具体请参考[ZJOI2012]灾难。
对于这道题,我们发现:删掉点 后到 的最短距离改变的点的数量,等价于在最短路图上删掉点 后 无法到达的数量。
然后我们直接建出最短路图,在上面建支配树求解即可。注意,删除的不能是起点。
我的代码写得比较麻烦,但其实思路还是很清晰的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构