- FFT/NTT练习(都是好题)
- #4836. [Lydsy1704月赛]二元运算:经典的FFT分治,改善了下自己的模板
- 学习了神奇的CDQ分治,常见于求一些数对(a,b)的问题:
- 可照某种条件排序得到 [ A 0 . . . A n ] [A_0...A_n] [A0...An]
- 然后对于每个区间
[
A
l
.
.
.
A
r
]
[A_l...A_r]
[Al...Ar]
- (1)递归解决 a , b ∈ [ A l . . . A m i d ] a,b\in[A_l...A_{mid}] a,b∈[Al...Amid]
- (2)递归解决 a , b ∈ [ A m i d + 1 . . . A r ] a,b\in[A_{mid+1}...A_r] a,b∈[Amid+1...Ar]
- (3)解决 a ∈ [ A l . . . A m i d ] , b ∈ [ A m i d + 1 . . . A r ] a\in[A_l...A_{mid}],b\in[A_{mid+1}...A_r] a∈[Al...Amid],b∈[Amid+1...Ar]
- a , b a,b a,b不一定是一个具体的数字或者对象,可能是一个操作或者一个询问。
- (种草):刷这上面的题
- 学习了神奇的CDQ分治,常见于求一些数对(a,b)的问题:
- #4836. [Lydsy1704月赛]二元运算:经典的FFT分治,改善了下自己的模板
- Educational Codeforces Round 133
- 2-3 Moves: 简单数学
- Permutation Chain: 简单构造
- (补)Robot in a Hallway: 一题需要耐心的dp+模拟;起太早没耐心,跑去做T4了 T_T
- (补)Chip Move: 一个数学+dp。可能是这两周做太多FFT/NTT了,比赛时候一头撞在NTT上了 T_T
- (good)(补)Swap and Maximum Block: 线段树+区间统计,居然1A了!一开始还想用记忆化搜索,避免不必要的计算。事实证明直接统计所有情况会更快(5x),CF的testcase还是能cover大部分的数据范围的。记忆化搜索的函数调用花销+cache读写其实并不便宜。
- (good)(补)Bags with Balls: 数学题。学习到了第二类斯特林数(这个题解很好)。求导构造的方式好巧妙
- Leetcode 第 84 场双周赛
- 合并相似的物品:map的考察
- 统计坏数对的数目:数学转换+哈希的考察
- 任务调度器 II:细节模拟题,算贪心吧
- 将数组排序的最少替换次数:数学+贪心,比赛时候起太早了阴差阳错没想到然后着急做cf812去了(T_T结果两场都凉凉)
- Codeforces Round #812 (Div. 2)
- Traveling Salesman Problem:简单数学
- Optimal Reduction:构造题,前后缀
- Build Permutation:找规律构造题
- Tournament Countdown:博弈+模拟,太可惜了卡着时间没赶上提交T_T(早知道就不做双周赛了)
- (good) Cross Swapping: 可以构造一种特殊的并查集,每个结点有多种(这里是2)形态:
- 每个<结点i,形态u>都有一个对应的<结点j,形态v>。相同结点i的不同形态u1, u2…应该有同一个祖先结点j,但是祖先形态v可能不一样。(若祖先不同其实可以拆开u1,u2到两个结点去)
- 相同结点的不同形态之间应该有对应关系。
- 比如结点<i, u1>与<j, u2>关联,那应该有一个方法找出<i, u1>与<j, u1>的关系(否则可能无法路径压缩,比如此时<j, u1>与<k, u1>关联,我们应该能把i和k关联)。
- 递归找祖先的时候跟普通的并查集寻根一样,路径压缩就好。
- 处理union的时候,输入应该是<结点i,形态u>和<结点j,形态v>,直接把它们关联就好(也可以把它们转化到别的形态进行关联)。
- (种草)Lost Array: 一个开眼界的题,暂时不想学了,涉及到快速莫比乌斯变换(好家伙)。
- 第 305 场周赛
- 算术三元组的数目:模拟题
- 受限条件下可到达节点的数目:图论,简单遍历就可以了
- 检查数组是否存在有效划分:简单dp
- 最长理想子序列:中等难度dp,看到不同的字符限制就应该想到怎么在这维度上做功夫
08/06/2022的周末
于 2022-08-09 15:45:40 首次发布