P4606 [SDOI2018]战略游戏

P4606 [SDOI2018]战略游戏

一个感觉比较新颖的题目,搞了一周

题目大意:

给定一个图,q组询问,每组给定k个点,求图上有几个点,删去后能使这k个点不连通

题解:

首先考虑删掉的点一定为割点,然后本题极像虚树,就可以考虑建圆方树

然后,圆方树上的圆点,在两点路径上的,即为所求

于是乎把k个点拎出来,加上两两间的点,构成的树,求圆点个数,即为所求

然后虚树,嗯...

还可以考虑一种简单的实现方法

如果我们求上面“把k个点拎出来,加上两两间的点,构成的树”的路径长,可以用k个点按dfs序排序后,两两相邻和首尾两个的路径和,除以二,即为所求(可以考虑画图证明)

然后就是把点权转边权,解决方法也很经典把点权变成父边的边权,然后统计后加上首尾两个的lca(即为那树的根节点),就完成了

posted @ 2024-02-22 20:50  zhy_learn  阅读(25)  评论(0)    收藏  举报