Luogu P4255 公主の#18文明游戏 题解

Describe

题目链接

这个游戏里有n个城市,标号1~n,有m条双向道路相连,编号1~m。

游戏里会系统会添加Ni个人到一个城市Xi,并给定这些人的信仰Ci

系统还会切断一条道路,并给定道路编号Xi

系统还会给定一个城市Xi,询问从Xi出发可以到达的所有城市中选择Ni个人,使得他们信仰都为Ci的概率为多少,对19260817取模。

Solution

首先用并查集搞成各个连通块,然后每个连通块用个$map$储存信仰为$Ci$的个数。再开一个$vector$储存每个连通块有哪些信仰。

那么每次答案就可以求出信仰为$Ci$的人数$C$和连通块总人数$A$。

那么答案就是$ans=\frac{C_C^Ni}{C_A^Ni}$。

那么用快速幂逆元一下就好了。

维护的时候可以用$vector$的$find,erase$和并查集启发式合并即可。

技巧:由于断边比较困难,所以时间倒流,断边变成连边,加值变成减值。

Code

暂无评论

发送评论 编辑评论


				
上一篇
下一篇