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.如果多了一个偶环怎么办?

拆环

转载于:https://www.cnblogs.com/Kong-Ruo/p/9686374.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值