Codeforces Round #538 Div. 2 题解
Penalty: 2568 (3/6) Rank: 959
明明是一场能
比赛链接在这里
A. Got Any Grapres?
题目大意:A,D,M 三人分别至少要吃
判断题,如果
时间复杂度:
代码见这里
B. Yet Another Array Partitioning Task
题目大意:对数组
考虑贪心,给这一列数排序,我们选的数一定是前
所以排个序,对于前
时间复杂度:
代码见这里
C. Trailing Loves (or L'oeufs?)
题目大意:问
CF 居然出原题辣!原题见这里。
考虑
如果能整除
于是我们要求的是选择哪个
时间复杂度:
代码见这里
D. Flood Fill
题目大意:定义连通分量为有相同颜色的连续子数组。每一次你可以选择一个位置,并且把这个位置所在的一个连通分量改为一种颜色,代价为
打比赛的时候去看 F 了,没看 D……
看起来像一个区间 DP,但是并不需要
考虑一个区间拓展一位,那么合并后区间的颜色为
但是注意转移顺序。
时间复杂度:
代码见这里
E. Arithmetic Progression
题目大意:给定一个打乱顺序的等差数列的前
不想做交互,略过。
题解是二分和随机化。
F. Please, another Queries on Array?
题目大意:给定一个数列
- 给
区间的数乘一个值 ; - 求
。
考试时想出来怎么做了,结果没调完……
把思路告诉了一个人,结果他 A 了……
考虑一种计算欧拉函数的方法:
因为
分部分处理,前面有一个乘以
处理区间积的时候需要一个 lazy 标记,然后处理质因子出现情况的时候也需要一个标记!不能把大区间的情况直接覆盖下去!
然后就是粘代码注意是不是少粘了什么……
一个 Trick 是预先把
逆元直接打表就行了……没多大……
建线段树时间复杂度窝怎么感觉是
时间复杂度:
据说卡空间,没感觉……
代码见这里