- Weekly Contest 307
- 赢得比赛需要的最少训练时长: 模拟题
- 最大回文数字: 贪心
- 感染二叉树需要的总时间: 图论模拟
- (good)找出数组的第 K 大和: 好题目,据说是amazonOA(这么难吗…)。需要转换问题两次,其中负数的转换很巧妙。
- Biweekly 85
- 得到 K 个黑块的最少涂色次数: 模拟题。双指针可以简化复杂度到O(n)
- 二进制字符串重新安排顺序需要的时间: 模拟题。
- 字母移位 II: 把更新平摊在数轴上来优化。不要做什么题都扯到太过高级的数据结构上(比如线段树),这题没有动态跟心,没有必要用线段树。时间复杂度总和更多功能之间有tradeoff的。
- 删除操作后的最大子段和: 反向处理query把分割操作变成合并操作+并查集。很经典了
- Codeforces Round #816 (Div. 2):
- Crossmarket: 贪心
- Beautiful Array: 数学+构造
- (good)Monoblock: 找规律+数学。
- 奇妙地把元素之间的关系(如a_1, a_2, a_3),转化成间隙(如<a_1, a_2>、<a_2, a_3>)之间的关系。
- (good)2+ doors: 贪心+模拟。
- (good)Long Way Home: 好题。最短路+斜率优化dp。之前一直知道斜率优化这个名词但是从来没有学过,这次居然自己推了出来很开心!标程的写法更加优雅(按照交点排序),学习到了。
- 在遇到dp优化的时候,不妨假设最优的 f f f是从某个 f ′ ( j ) f'(j) f′(j)来的,这时候 f ′ ( j ) f'(j) f′(j)应该和其他来源的 f ′ ( j ′ ) f'(j') f′(j′)有一个性质(如 f ′ ( j ) ≤ f ′ ( j ′ ) f'(j)\le f'(j') f′(j)≤f′(j′)),把公式展开或许就可以发现如何优化这个dp了。
- Crop Squares: 脑力IQ题。很巧妙。
- Codeforces Round #815 (Div. 2) (离线练习)
- 好题解
- Burenka Plays with Fractions: 简单数学
- Interesting Sum: 巧妙的贪心
- Corners: 贪心
- (good)Xor-Subsequence: 好题目。问题有一个很巧妙的转化就是把 a j ⊕ i < a i ⊕ j a_j \oplus i < a_i \oplus j aj⊕i<ai⊕j转化成 [ a j ⊕ j = a i ⊕ i ] 0... k − 1 [a_j \oplus j = a_i \oplus i]_{0...k-1} [aj⊕j=ai⊕i]0...k−1并且 [ a j ] k ⊕ [ i ] k < [ a i ] k ⊕ [ j ] k [a_j]_k \oplus [i]_k < [a_i]_k \oplus [j]_k [aj]k⊕[i]k<[ai]k⊕[j]k其中 [ ] k []_k []k代表二进制的第k位置。这样子就可以在 a i ⊕ i a_i \oplus i ai⊕i上做前缀树了!
- Misha and Paintings
08/20迷迷糊糊但是好题挺多的一周
于 2022-08-28 12:37:16 首次发布