P4606 [SDOI2018]战略游戏
P4606 [SDOI2018]战略游戏
一个感觉比较新颖的题目,搞了一周
题目大意:
给定一个图,q组询问,每组给定k个点,求图上有几个点,删去后能使这k个点不连通
题解:
首先考虑删掉的点一定为割点,然后本题极像虚树,就可以考虑建圆方树
然后,圆方树上的圆点,在两点路径上的,即为所求
于是乎把k个点拎出来,加上两两间的点,构成的树,求圆点个数,即为所求
然后虚树,嗯...
还可以考虑一种简单的实现方法
如果我们求上面“把k个点拎出来,加上两两间的点,构成的树”的路径长,可以用k个点按dfs序排序后,两两相邻和首尾两个的路径和,除以二,即为所求(可以考虑画图证明)
然后就是把点权转边权,解决方法也很经典把点权变成父边的边权,然后统计后加上首尾两个的lca(即为那树的根节点),就完成了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现