Educational Codeforces Round 121 (Rated for Div. 2)思路分享

这次的cf(虽然已经过去了很久...)C题就挂了好久,最后还是没有搞出来.....气死...
(幸好这次网站崩了,没有记rating....)
Educational Codeforces Round 121 (Rated for Div. 2)

A. Equidistant Letters

A题简单构造,我们直接将相同的字母放一起即可。

B. Minor Reduction

B题给定一个很大的数字,要求做一个操作使得相邻的两位替换成两个相加的结果。
首先我们优先考虑它的位数不变,经过简单的思考,发现如果要位数不变的话,(即加起来的和>=10)发现加起来之后这个数一定是减小的(和原来相比)。既然一定要减小,所以我们倒着找,看能不能找到相邻的两个位相加使得他们的和>9.
之后若找不到,说明只能减小一位,但这个情况和上面情况相反,相加之后虽然位数减少了但是数增大了或不变,所以我们直接让第一位和第二位相加即可。

C. Monsters And Spells

首先我们考虑只有一个怪物时,最优的策略就是从k[i]-h[i]+1开始施法,在k[i]时正好以h[i]打败怪物。考虑有两个怪物怎么办,我们设start[i]为怪物i能够正好打败怪物的开始施时间。若start[i+1]>k[i],则两个怪物不影响,我们分别独立的施法打败。若start[i+1]<k[i]的话,这个时候就取决于start[i]和start[i+1]的大小,我们将两个怪兽在一个连续施法区间开始打败,而开始的时间就是两个怪兽开始时间的小的值。

上一篇:flinksql 解析学习


下一篇:Java多线程下载同一个文件的实现,断点续传(Range)