CodeForces记录 算法竞赛

参加算法竞赛就是为了让脑子不退化。

CF656 div3 数学题

A: 只用考虑n - n mod (x+y) 和 n- n mod x - (x-y) 就行。O(1)

B: n*2^x / 6^y = 1 => n = 2^(y-x) * 3^y 把(y-x),y的值算出来,ans=x+y

C: 贪心,记录右括号数量,每次遇到左括号-1,这个值小于0说明有个右括号多了,我们把它挪到string末尾

D: 注意到每次x变化只能把一个数字变成k的倍数,而我们想要每个数字 ai+x mod k = 0。因此x从0~k-1 循环,每次只能把一个数字变好,总共需要 k*(max(k-ai mod k) - 1) 次完整循环。-1是因为最后还有一轮不完整的,取决于最大的 k-ai mod k

E1:

F: