上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 26 下一页
摘要: \(\text{Solution}\) 发现一个事情 把 \(i\) 到根的路径都加 \(1\),然后让 \(z\) 往上跳,跳到第一个加了数的点就是他们的 \(lca\) 废话 如果把 \(z\) 到根的值加起来,那么就是 \(\text{dep[lca]}\) 废话 如果把所有的 \(i\) 到 阅读全文
posted @ 2021-10-08 13:06 leiyuanze 阅读(38) 评论(0) 推荐(0)
摘要: \(\text{Problem}\) 维护一个序列 支持插入一个数,区间加,询问区间平方和 \(\text{Solution}\) 平衡树很模板的题了 考场打 \(fhq-treap\) 毫无悬念过了 读入有负数,快读注意! 打完之后发现有模数? 狂改代码,无脑乱加模,代码直接丑了 \(\text{ 阅读全文
posted @ 2021-10-06 14:25 leiyuanze 阅读(70) 评论(0) 推荐(0)
摘要: 权值线段树套线段树模板 区间每个可重集插入一个数 把权值放外边,内部维护区间 在权值线段树上二分,内部查询数量 \(\text{Code}\) #include <cstdio> #include <iostream> #define LL long long using namespace std 阅读全文
posted @ 2021-10-05 20:28 leiyuanze 阅读(60) 评论(0) 推荐(0)
摘要: \(\text{Problem}\) 给出一个字符串,求经过重新排列的另一个字典序最小的字符串,满足:相同的位置上 原串与结果串的字符不同。不存在则输出空串。 \(\text{Solution}\) 考虑从第一位开始枚举匹配 如果这位匹配(即两个都不相同)某个字符后可以判断出剩下的字符能否合法匹配 阅读全文
posted @ 2021-10-05 16:30 leiyuanze 阅读(62) 评论(0) 推荐(0)
摘要: #【模板】笛卡尔树 \(\text{Code}\) #include <cstdio> #include <iostream> #define re register #define LL long long using namespace std; const int N = 1e7 + 5; i 阅读全文
posted @ 2021-09-10 13:13 leiyuanze 阅读(62) 评论(0) 推荐(2)
摘要: 带修改莫队板子 块长取 \(O(n^{\frac 2 3})\) 总时间复杂度为 \(O(n^{\frac 5 3})\) \(\text{Code}\) #include <cstdio> #include <cmath> #include <algorithm> #include <iostre 阅读全文
posted @ 2021-09-04 16:54 leiyuanze 阅读(41) 评论(0) 推荐(0)
摘要: \(\text{Solution}\) 明显的 \(\text{K-D Tree}\) 基操题 提前给出了数列,那么考虑提前建好树,省去重构 但还是要开 \(O\) \(\text{Code}\) #pragma GCC optimize(3) #pragma GCC optimize("inlin 阅读全文
posted @ 2021-08-22 22:14 leiyuanze 阅读(37) 评论(0) 推荐(0)
摘要: \(\text{Code}\) #include <cstdio> #include <iostream> #include <algorithm> #define re register using namespace std; const int N = 2e5 + 5; const doubl 阅读全文
posted @ 2021-08-20 21:21 leiyuanze 阅读(33) 评论(0) 推荐(0)
摘要: \(\text{Solution}\) 一个性质:两个 \(K\) 元组有边相连当且仅当每个点在对应的图中到 \(1\) 有奇偶性相同的路径 那么我们就可以预处理每个图中的点到 \(1\) 的奇偶最短路 再考虑路径长度,显然是 \(\min(\max_{i=1}^k{odd_i}, \max_{i= 阅读全文
posted @ 2021-08-17 19:52 leiyuanze 阅读(65) 评论(0) 推荐(0)
摘要: \(\text{Solution}\) 线段树分治的模板 对时间分治,线段树下标表示时间 在线段树上处理每条覆盖当前区间的边,对当前的时间区间求答案 小区间的信息可以由大区间一路下来得到,那么答案就是叶子节点的答案 对于二分图的加边动态判定,可以用并查集维护 具体来说就是用带权并查集,维护每个点与其 阅读全文
posted @ 2021-08-17 14:33 leiyuanze 阅读(52) 评论(0) 推荐(0)
摘要: \(\text{FFT}\) #include <cstdio> #include <cmath> #include <iostream> #include <cstring> #define re register using namespace std; const int N = 2e6 + 阅读全文
posted @ 2021-08-16 20:13 leiyuanze 阅读(37) 评论(0) 推荐(0)
摘要: \(\text{Solution}\) 一个点可与另一个颜色相同点同时涂色当且仅当两点间颜色都大于等于这两点 那么我们可以预处理一个点向左向右最远能到的位置,记为 \(l_i,r_i)\) 当 \(l_i = l_j \text{ and }r_i = r_j\) 时,\((i,j)\) 就可以同时 阅读全文
posted @ 2021-08-16 17:07 leiyuanze 阅读(49) 评论(0) 推荐(0)
摘要: \(\text{Solution}\) 发现每个时刻的状态一定是所有点在一个最外围三角形的内部 设 \(f_{i,j,k,p}\) 表示排列填到第 \(p\) 位,此时图形最外围的三角形是以编号为 \(i,j,k\) 的三角形的方案数 那么考虑这个三角形是怎么来的,于是又两个转移 1.前 \(1~p 阅读全文
posted @ 2021-08-15 20:36 leiyuanze 阅读(161) 评论(0) 推荐(0)
摘要: \(\text{Solution}\) 简要的口胡 线段树维护合法左端点数量 正序枚举 \(i\),将其视为右端点,去除不合法的左端点,统计贡献 再将其视为中间点,由它产生的左端点在线段树上区间加 注意到一个重复出现的 \(b\) 值,上一个相同位置的贡献不能再要 于是把这个点废掉 考场上又打了棵线 阅读全文
posted @ 2021-08-14 16:25 leiyuanze 阅读(91) 评论(0) 推荐(0)
摘要: \(\text{FFT}\) 模板 #include <cstdio> #include <iostream> #include <cmath> #define re register using namespace std; const int N = 2e6 + 1e5; int rev[N], 阅读全文
posted @ 2021-08-13 19:53 leiyuanze 阅读(44) 评论(0) 推荐(0)
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 26 下一页