08 2021 档案
摘要: #include <cstdio> #include <iostream> #include <algorithm> #define re register using namespace std; const int N = 2e5 + 5; const doubl
阅读全文
摘要: 一个性质:两个 元组有边相连当且仅当每个点在对应的图中到 有奇偶性相同的路径 那么我们就可以预处理每个图中的点到 的奇偶最短路 再考虑路径长度,显然是 \(\min(\max_{i=1}^k{odd_i}, \max_{i=
阅读全文
摘要: 线段树分治的模板 对时间分治,线段树下标表示时间 在线段树上处理每条覆盖当前区间的边,对当前的时间区间求答案 小区间的信息可以由大区间一路下来得到,那么答案就是叶子节点的答案 对于二分图的加边动态判定,可以用并查集维护 具体来说就是用带权并查集,维护每个点与其
阅读全文
摘要: #include <cstdio> #include <cmath> #include <iostream> #include <cstring> #define re register using namespace std; const int N = 2e6 +
阅读全文
摘要: 发现每个时刻的状态一定是所有点在一个最外围三角形的内部 设 表示排列填到第 位,此时图形最外围的三角形是以编号为 的三角形的方案数 那么考虑这个三角形是怎么来的,于是又两个转移 1.前 \(1~p
阅读全文
摘要: 简要的口胡 线段树维护合法左端点数量 正序枚举 ,将其视为右端点,去除不合法的左端点,统计贡献 再将其视为中间点,由它产生的左端点在线段树上区间加 注意到一个重复出现的 值,上一个相同位置的贡献不能再要 于是把这个点废掉 考场上又打了棵线
阅读全文
摘要: 模板 #include <cstdio> #include <iostream> #include <cmath> #define re register using namespace std; const int N = 2e6 + 1e5; int rev[N],
阅读全文
摘要:贴模板 注意: 表示第二关键字排序后(其实无需排序,利用上轮的 值即可)相应的第一关键字的位置 计数排序为了稳定性最后确定位置时要倒着开始 复制的 要开两倍 #include <cst
阅读全文
摘要: 纪念我考场正解被二分暴力暴踩。。。 首先二分的话,显然可以二分出答案,然后数矩阵和大于等于本矩阵的是否有 个 加一些优化就可以 ?!! 不管它,正解就是让矩阵行列大小从小到大扩展,矩阵和小一些的肯定
阅读全文
摘要: #include<cstdio> #include<cstring> #include<iostream> #define LL long long #define re register using namespace std; const int N = 3e5
阅读全文
摘要: 一年一度的高考结束了,我校要拍集体照。本届毕业生共分 个班,每个班的人数为 。这次拍集体照的要求非常奇怪:所有学生站一排,且相邻两个学生不能同班。现在,安排这次集体照的老师找到了你,想问问你一共有多少种方案。方案数可能很大,最终结果对
阅读全文
摘要: 翻折就只需预处理回文中心 预处理即可 #include<cstdio> #include<iostream> #define LL long long using namespace std; cons
阅读全文
摘要: 模板 #include<cstdio> #include<queue> #include<iostream> #define re register using namespace std; const int N = 1e4 + 5; int n, m, a[N], h1[N
阅读全文