【Atcoder】AGC014 B-F简要题解

博客详细解析了Atcoder AGC014比赛中的B到F五道题目。B题通过路径覆盖进行求解,确保操作次数的奇偶性;C题采用向外BFS拓展的方法解决房间问题;D题通过贪心策略调整黑白树,证明先手获胜条件;E题利用连通块的合并策略简化操作;F题介绍了奇妙的递推方法来解决排序问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

*B.Unplanned Queries

又zz了。

把路径覆盖拆成两个点分别覆盖其到根的路径,使得操作独立。

x x x的父边会被覆盖 x x x子树所有点的操作次数之和 s u m x sum_x sumx,即 s u m x sum_x sumx为偶,因为每条边都需要满足条件,所以递推下去即除根外所有点操作次数必须为偶。

判断操作次数为奇的点个数是否 ≤ 1 \leq 1 1即可。


C.Closed Rooms

第一轮先努力向外走 k k k步,发现后面的操作都是先开距离在 k k k内的锁,然后走 k k k步——相当于直接没有障碍地向外拓展。

所以走完第一轮后,每次都向外 B F S BFS BFS拓展 k k k步直到到达边界。


D.Black and White Tree

若最后图中存在不与黑点相连的白点,则先手胜。

考虑贪心地选择度数最小的白点让其满足条件:每次选择一个叶子结点的父结点染成白色,后手必须把叶子结点染成黑色——若该父结点的儿子结点不止一个,则先手必胜。否则相当于删去了这对点。

所以把点都安排成儿子和父亲的点对,如果有剩下的点则先手胜。


E.Blue and Red Tree

一次操作等价于拆开两个连通块之间的唯一的连边(树上路径唯一),在两个连通块之间重新连边(可以与原先的连边相同)。

所以每次找到两颗树中之间都有连边的两个连通块,用 s e t set set&并差集启发式合并即可。

考虑最后一次操作,两颗树中必然存在同样的一条连边,可以先合并这两个点然后向外拓展。

代码中可以把两颗树建在同一张图上,判断连通块之间是否存在两条连边即可。( ≥ 3 \geq 3 3条边当然不合法了)


*F.Strange Sorting

很妙的递推方法和结论,直接贴题解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值