CF竞赛题目讲解_CF1149E(图上博弈 + SG函数)
2022-11-29 14:57 作者:Clayton_Zhou | 我要投稿
AC代码
https://codeforces.com/contest/1149/submission/183086572
题意:
在Byteland,有两个政党在即将举行的选举中争夺议会席位:错误答案党和超越时限党。
由于他们想说服尽可能多的公民投票,他们一直承诺越来越低的税收。
Byteland有n个城市,由m条单行道连接。有趣的是,道路网络没有循环——不可能从任何城市出发,
沿着多条道路,然后返回该城市。去年,第i个城市的居民不得不缴纳高额税款。
两个政党 将轮流在各个城市举行选举大会。如果一个政党在v市举行会议,
该政党需要将该市的税收降至非负整数bourles。
然而,同时,他们可以任意修改每个城市(可以通过一条道路从v到达)的税收,
唯一必须满足的条件是,每个城市的税收必须保持为非负整数bourles。
第一个举行大会的政党是错误答案党。
据预测,举行最后一次大会的政党将赢得选举。
也就是说,所有城市的税收为0时,这时的选手输
题解:
图上博弈 + SG函数
首先求出每个点的SG函数值,即SG(u)=mex{SG(v)|v∈son(u)}。
然后求出sum_x=xor {au|SG(u)=x}
那么先手必胜当且仅当存在sum_x非零。
先手必胜要做的是把所有非零sum_x变成0