AtCoder AGC #4 Virtual Participation

我好懒啊QAQ

老规矩 从C开始

C.给一个矩阵,里面有一些紫色方块,你需要涂两个矩阵,一个红色,一个蓝色,保证你涂的颜色四连通

然后把红色蓝色矩阵叠起来要求紫色的地方必须是紫色,其他地方不能是紫色

输出方案

sol:构造题...不想做啊TAT

想了半天,想到了官方正解左右翻转一下的情况233

D.

给你一个环套树和一个k,你可以把一些边拆下来连到根上,使得所有点的深度都不超过k

问最少拆多少条边

sol:

贪心,搜到大于k的直接连

E.

给你一个矩形里有一些机器人,有一个出口,走到出口的机器人会出去,走出矩形边界的机器人会死

现在你可以令所有机器人一起上下左右走一个单位长度,操作次数不限

问最多可以让多少机器人出去

sol:

“运动是相对的”

我们可以考虑这个出口拖着一个矩形走,然后用$dp_{i,j,k,l}$表示向上下左右分别走了$i,j,k,l$步能搞到的机器人数量

转移的时候加上能拯救的机器人再减去去世的机器人就可以了

F.

给你一个树或者环套树,每个点都是白色

你每次可以翻转两个相邻同色节点的颜色,求最少多少步把所有点变成黑色

或者输出无解

sol:

这题的树和环套树根本就是骗人的...

1.为什么要有树呢?因为树是一个二分图

我们把每个深度为奇数的点想象成一个小球,把深度为偶数的点想象成一个球洞

我们要把所有球移动到球洞里

于是我们很显然想到小球 = 1,洞 = -1

然后答案就是$\sum |sig_i|$

其中$sig_i$表示$i$子树的和

2.如果多了一个偶环怎么办?

拆环

猜你喜欢

转载自www.cnblogs.com/Kong-Ruo/p/9686374.html