Codeforces Contest 1798
这场比较经典但是不太困难(都经典了说明没啥思维题)。
A. Showstopper
枚举一下交不交换,然后前面的状态就固定了,最后判断是否合法。
B. Three Sevens
从后往前把不行的都划掉。
C. Candy Store
考虑一段 \(c_l=c_{l+1}=\dots c_{r}\),必然有 \(lcm(b_l\dots b_r)\mid c\),且有 \(c=b_id_i\mid b_ia_i\)。于是有 \(c\mid \gcd(a_lb_l\dots a_rb_r)\)。贪心从前往后分段。
D. Shocking Arrangement
如果当前和是正数就放一个负数进去,否则加一个正数进去,绝对值从大到小加入。
E. Multitest Generator
容易发现答案不会超过 \(2\),\(0\) 的情况也是平凡的,\(1\) 有两种情况,其中一种即为动第一个数,只要后面合法即可。否则是动后面的数,\(f_i\) 代表最多动 \(1\) 个最大能形成极端,\(f_i=\max(\max step_j+1,f_{i+a_i+1}+1)\),只要这个值不小于第一个数就能转换。
F. Gifts from Grandfather Ahmed
经典结论 \(2n-1\) 个数中一定可以选出 \(n\) 个数的和是 \(n\) 的倍数,参考最近一场uer的b。
于是从小到大考虑每个 \(s_i\),用暴力的背包去dp,最后一个 \(s_k\) 凑一下就行。