随笔分类 - 分块
摘要:题目链接 CF311D Interval Cubing 解题思路 实际上不难。 注意到特殊的模数,考虑是否会出现循环节。 然后打表发现循环节长度为 \(48\)。 那么我们显然使用分快维护块内乘了几次即可,因为有 \(48\) 的极小循环节。 块长取 \(50\) 显然是优秀的。 参考代码 ll n
阅读全文
摘要:代码恢复训练 2024.6.8. 题目链接 链接 (atcoder) 链接 (luogu) 解题思路 数据结构板子题。 设 \(ans_i = a_i \times b_i\)(\(a_i\) 和 \(b_i\) 是此时的 \(a_i,b_i\))。 设 \(f1(i,j)\) 表示 \(a_i +
阅读全文
摘要:先上 AC 代码: 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? */ #include<bits/stdc++.h> using namespace std; #define map unordered_m
阅读全文
摘要:盲猜没人用此做法 题目链接 CF1927D Find the Different Ones! 解题思路 考虑分块,在一块内的数当且仅当他们是连续的且权值相同,并记录下他们的左右端点同时记录每一个数在哪个块内,对于每个块维护它的左右端点,然后对于每组询问如果 \(l,r\) 在同一个块内,那么 \(l
阅读全文

浙公网安备 33010602011771号