Codeforces Round #373 (Div. 2)


4/4

好久没写题解了,写个CF的题解练一下手!!

 

题A A. Vitya in the Countryside

题意:给你一个序列,问你是上升的还是下降的,还是不确定。

题解:水题,略

 

题B B. Anatoly and Cockroaches

题意:给你一个字符串,有两种操作,第一种:将b变成r或者将r变成b,第二种:b和r交换,问你最后变成交替的字符串的最小代价,每种操作代价一样都是1.

题解:本来以为dp,恶心贪心什么的,但毕竟是第二题没有那么麻烦。做法是写出目标序列,然后看一下有多少错位,优先交换,然后交换还不够就补上,一共有两种目标序列。

 

题C C. Efim and Strange Grade

题意:给你一个浮点数,然后你可以采用四舍五入进行进位,不超过t次,然后最后得到最大的数是什么。

题解:表示真的不会做贪心题。这道题的显然结论没找到:优先弄第一位大于等于5的,然后一直往前弄即可,这样一定是最优的。

 

题D 因为出题人自己都不会做,所以就删了。。。。。

 

题E E. Sasha and Array

题意:给你一个序列,有两种操作,第一种:1 l r x表示将这个序列的[l,r]加上x,第二种:2 l r求出

,其中f是斐波那契序列。

题解:用线段树维护两个值s1,s2。其中s1表示,s2表示,然后每个节点还要多维护的lazy值是一个矩阵,表示这个区间要乘上的矩阵,最后要注意的一点就是update的时候,最多有log个区间要乘以那个矩阵,要预先算出来,然后直接加到那个子区间去,不然会超时。

 

代码

 

CF