[Educational Codeforces Round 77]暑期训练第二天

A

一棵树有n个点,每个点都有一种颜色。这棵树的权值定义为:任意两个相同颜色的点之间的路径长度之和。但是每个点的颜色是不确定的,第i个点的颜色范围在[ li,ri ]之间。求树在所有情况下的权值之和。

待补。

B

你在玩一个游戏,你有m个士兵,每个士兵的敏捷度是a[i]。你要从位置0出发,到位置n+1去打boss。
这一路上有k个陷阱,每个陷阱都有l[i],r[i],d[i]三个属性。当士兵位于l[i]的位置时,就会触发陷阱,如果士兵的敏捷度a[i]小于d[i],那么这个士兵会被杀掉。不过当你位于r[i]的位置时,你可以排除该陷阱(你不会触发陷阱)。
你有t秒的时间去进行移动,你有两种移动方式:1.如果你位于x位置,那么你可以移动到x+1或者x-1的位置上。2.如果你和你的部队都在x位置上,你可以带着你的部队移动到x+1或者x-1的位置上(你也可以不带部队行动)。两种行动都只花费一秒。
问你最多可以从m个士兵中带多个人去打boss,使得移动时间不超过t秒,且在路上没有伤亡。

D.A Game with Traps

C

有n个房间,每个房间可以放至多c个加热器,这c个加热器分成了sum个部分,假设某个加热器有k个部分,那么该加热器的费用为k2,问房间中的sum个部分要怎么安装才能使得费用最小。算出每个房间需要的最小费用。

水题。

D

你要举办一个拳击赛,有n个人参加,他们的力量分别为1一n。两个人进行拳击比赛,力量大的人一定获胜。
这些参赛者中有你的朋友,他想赢得比赛,但他的力量不一定是最大的。为了赢得比赛,你要贿赂他的对手,力量为i的人需要贿赂的金额为a[i]。
比赛为淘汰赛,即n个人进行两两对决,赢得人晋级,输的人被淘汰,然后剩下的n/2个人在进行下一轮两两对决,直到最后只剩下一个人为止。
问如何安排比赛才能使贿赂的金额最小,求这个最小值。

E.Tournament

E

刷围栏。刷到第i个时,当i能被r整除时(0,r,2r),必须把围栏刷成红色。
当i能被b整除时(0,b,2b),必须把围栏刷成蓝色。
当i既能被r又能被b整除时,既可以刷成红色又可以刷成蓝色。
否则,不用涂色。
当涂相同颜色的围栏大于等于k个时,就失败了。当涂色操作不符合上面四个要求时,也会失败。
问:给你r,b,k三个数,问操作能否成功。

C. Infinite Fence
思路/过程: 假设b>=r
一开始我想的是:假设某种情况是不合法的,那么一定是在某( 0,b )的区间内有连续k个r的倍数。因此区间的长的为b-1,最后算出来的结果是b/r上取正<=k则操作能成功(怎么推出来的我不想去重新推了,毕竟是错的,而且主要错误就是找错了区间)。然后提交当然就wa了(当时的思路还比较混乱)。
然后我想了很长时间才发现:( 0,b )并不是一般的情况,因为0正好可以被r和b整除,是一种特殊情况。
因为只要有一段区间[ xb,(x+1)b ]中含有了连续k个r的倍数,那么这个操作就是失败的,因此我们找的区间应该是含有连续个r的倍数最多的某个区间。这样的区间内第一个r的倍数应尽可能靠近xb+1处。即:xb+yr=t,让t最小。根据扩展欧几里得算法,t最小为gcd(r,b)。因此区间的长度为(b-1-gcd(r,b))。最后再除以r在加1后与k进行比较即可。(后面的+1当时我是试出来的,具体为啥看题解把。)

F

给你两个整数a,b,你可以进行如下操作。选择任意一个正整数x,让a-=x,b-=2 * x或者a-=2 * x,b-=x。问能否通过操作让a和b同上变成0(操作次数不限)。

这个题也不算很难,就不写题解了。
过程/思路: 因为每次都要减3*x个数,所以为了让a和b同时变为0,就需要a+b能够被3整除。一开始我只想到了这里,就直接交了,然后,就错了。
在错了之后,我又仔细想了一下,发现a和b的差值不能过大(如:1 5),否则即使a+b能被3整除也不行。我将10以内的合法答案全都写了一遍,发现a和b的差值最大为min(a,b)。因此我猜想,合法的条件除了a+b能被3整除之外,还要让a和b的差的绝对值小于等于min(a,b)。然后我提交试了试,就过了。

感想

这次的题目难点比昨天大了不少,而且英文更长了。对于英文题比起昨天我适应了一些,但做起来还是很难受。
最近忙着练车,所以时间比较紧张,大概再过一周考完试就有时间了,到时候再把前面没有补的题抽空补一下。
关于做题:因为时间有限,所以做题/补题一直存在一个问题,那就是保质还是保量。经过了这么长时间的acm学习,我是倾向于保质的。如果只是糊弄的把一道题补上,其实效果是很小的。当然,把一道难题完全弄明白也是挺难的,也要花不少的时间,但相比较之下,我根据还是很有收获的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lwz_159

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值