随笔分类 - 算法 - 整体二分
摘要:比较神仙的随机化+交互题. 测试点 $1$ ~ $5$ : 限制条件不强,可以直接点亮一条边中编号小的点 $x$,然后再枚举编号大于 $x$ 的点. 操作次数:$O(n)$ 查询次数:$O(n^2)$ 测试点 $6$ ~ $9$: 图的形态是点两两匹配. 这里有两种做法: 1. 随机化 假设当前要分
阅读全文
摘要:我之前一直以为这道题很厉害,没想到就是一个整体二分模板题,就当省选前练练手了. 我们计算每个木棍是被哪个子弹所击碎的,然后这个显然具有单调性. 每一条木棍分别去二分答案的话时间复杂度大概是 $O(n^2 \log n)$ 的. 所以我们就采用整体二分的方式,然后判断的话用一个树状数组来一个区间加法就
阅读全文
摘要:新学了一下决策单调性. 对于这道题,我们可以先考虑 $j<i$ 的情况. 然后我们发现随着 $i$ 变大,$i$ 的决策点不可能减小(因为根号函数的增长速率越来越小,所以一旦被赶超上是不可能追回来的) 然后有两种处理方式:单调队列+二分 or 整体二分. 前者细节较多,后者更好写一些. code:
阅读全文
摘要:以前一直以为这道题很恶心,事实证明还好,好多地方脑残写丑了. code: #include <cstdio> #include <string> #include <cstring> #include <algorithm> #define N 50003 using namespace std;
阅读全文
摘要:题意:对于一个序列,假如说一个区间内最多能包含 $k$ 个不同的数,那么这个序列最少会被划分成几个区间 $?$ 输出 $k$ 为 $1\sim n$ 的答案. 我们每次选区间一定是贪心地将这个区间选地越大越好. 这道题有一个非常显然的主席树做法:从后向前扫,维护每一种数字出现最靠左位置,然后用主席树
阅读全文
摘要:线段树肯定会 TLE 的,必须要用树状数组. Code:
阅读全文

浙公网安备 33010602011771号