随笔分类 - DP
摘要:D. Cyclic Rotation 听说很多人赛时都被这道题卡了。。感觉并不难想啊。。 逆向思考,原题意相当于如果存在 \(b[i] = b[i-1]\) ,则 \(b[i]\) 可以放在前方任意一个位置,然后这题就做完了。。 具体做法的话先统计 \(b\) 数组中哪些数可以放前排去,然后开双指针
阅读全文
摘要:E. Magic Stones 难点主要在想到用差分做。。 设 \(d\) 为 \(c\) 的差分数组,由 \(c′_i = c_{i+1} + c_{i−1} − c_i\) 移项可得: \(c′_i + c_{i−1} = c_{i+1} − c_i\) 因此对 \(c_i\) 进行一次操作相当
阅读全文
摘要:C - ThREE 先考虑如果是一条链怎么做,直接模三分类填就行 现在转换到树上,那不妨先对整棵树红蓝交替染色,假设最终红蓝点个数分别为 \(Rnum\) 与 \(Bnum\) , \(1 \sim n\) 模 3 余 1、2、0 的个数分别为 \(n_1\) 、 \(n_2\) 、 \(n_3\)
阅读全文
摘要:D. Optimal Partition #include <bits/stdc++.h> #define IOS \ std::ios::sync_with_stdio(false); \ std::cin.tie(0); \ std::cout.tie(0); using ll = long l
阅读全文

浙公网安备 33010602011771号