摘要: 线性筛,可以理解为用 \(O(n)\) 的时间复杂度处理 \(\leqslant n\) 定义域范围内每个点对应的某个函数值。比如线性筛质数等。 而筛法的思想非常简单,就是我们要求每一个数都被且仅被其最小的质因数筛掉,即只有在 \(pri[j] \leqslant min(prime(i))\) 时 阅读全文
posted @ 2021-10-15 01:10 BrotherCall 阅读(6519) 评论(0) 推荐(2) 编辑
摘要: 势能线段树其实就是对于一些数据结构题,我们察觉到其中存在一些规律: 一段区间或某个点的修改次数不会超过 \(k\) 次, \(k\) 的值很小或为一个常数。 这样我们就可以在这个点修改了 \(k\) 次之后让它不再修改。 详解可见 link 。 这里我们转载一下其中最重要的几句话: 我们知道,线段树 阅读全文
posted @ 2021-10-15 01:09 BrotherCall 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 莫队:著名 \(O(n\sqrt{n})\) 离线算法,思想基于分块。 做法 令 \(t = \sqrt{n}\) ,将区间左端点分成 \(t\) 块,按块从小到大排序,再将块内按从小到大排序。即: bool compare(node s1 , node s2){ if(s1.x / t < s2. 阅读全文
posted @ 2021-10-15 01:08 BrotherCall 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 题面: CF431D Random Task 题意: 给定两个数 \(m\) 和 \(k\) ,要求输出一个 \(ans\) ,满足在 $[ ans + 1 , 2 ans] $ 这个区间中恰有 \(m\) 个数的二进制表示中恰有 \(k\) 个 1 (输出的 \(ans\) 为任一满足题意的即可) 阅读全文
posted @ 2021-10-15 01:05 BrotherCall 阅读(34) 评论(0) 推荐(0) 编辑
摘要: CF486D Valid Sets 题意: 给出一棵有点权的树,求这棵树的满足极差 \(\leqslant k\) 连通子图的个数 ( 点数 \(n \leqslant 2000\) ) 。 解法: 由于点数 \(n \leqslant 2000\) ,所以我们考虑构造一个 \(O(n^2)\) 的 阅读全文
posted @ 2021-10-15 01:04 BrotherCall 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 题面:CF446B DZY Loves Modification 题意: \(zyb\) 有一个 \(n \times m\) 的矩阵,他每次选某一行或者某一列,使自己的快乐值加上这一 行/列 的总和。之后这一 行/列 的所有数字大小减去 \(p\) 。问 \(k\) 次操作之后最大快乐值为多少。 阅读全文
posted @ 2021-10-15 01:02 BrotherCall 阅读(14) 评论(0) 推荐(0) 编辑
摘要: CF1408D Searchlights 题意: 在以左下角 \((0 , 0)\) 为坐标原点的直角坐标系中 , 有 \(n\) 个强盗 \(m\) 个监控。每个监控能看到自己左下角的所有区域。而所有强盗可以且只能同时向右或向上移动一步,求为了让所有强盗摆脱监控,最少移动次数为多少。 解法: 实际 阅读全文
posted @ 2021-10-15 01:00 BrotherCall 阅读(26) 评论(0) 推荐(0) 编辑
摘要: CF1416B Make Them Equal 题意: 一个数列 \(a_1 , a_2 ... a_n\) 。\((a_i \geqslant 1)\) 每次可以选一个三元组 \((x , y , z)\) 且 \(x\) 非负 ,\(a_i -= x \cdot i\) , \(a_j += x 阅读全文
posted @ 2021-10-15 00:59 BrotherCall 阅读(47) 评论(0) 推荐(0) 编辑
摘要: CF1244C The Football Season 题意: 解方程组:\(x+y+z=n\) , \(wx + dy = p\) , 要求 \(x ,y , z\) 都非负。 \(1 \leqslant n \leqslant 10^{12} , 1 \leqslant p \leqslant 阅读全文
posted @ 2021-10-15 00:58 BrotherCall 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 题意理解及思路转换详见:link 同样的道理,我们只需要预处理出来 \(nxt\) 数组和 \(del\) 数组,然后直接莫队维护就可以了。 摆一段最关键的函数吧: void work(int l , int zx){ if(dq[a[zx]].empty()) { nb[a[zx]] = fals 阅读全文
posted @ 2021-10-15 00:56 BrotherCall 阅读(26) 评论(0) 推荐(0) 编辑