随笔分类 - 题解
摘要:\(\text{Solution}\) \(\text{code}\) #include <cstdio> #include <iostream> #include <set> #define IN inline #define RE register using namespace std; ty
阅读全文
摘要:\(\text{Solution}\) 一眼不会,限制有点多。。。 那就网络流 发下确实是很简单的建图 枚举起点集合 拆点后就很好满足限制了 \(\text{Code}\) #include <cstdio> #include <iostream> #include <cstring> #defin
阅读全文
摘要:\(\text{Part1}\) 如果是只增,那么将询问按左端点所在块为第一关键字升序,右端点为第二关键字升序排序 如果询问在一个块内,暴力扫 不然对于左端点在同一个块的所有询问,先将莫队区间左端点移到块右端点 \(+1\),右端点移到块右端点,这是一个空区间 然后右端点递增,保证了只增,左端点向左
阅读全文
摘要:\(\text{Solution}\) 首先把 \(T2\) 给切了,\(T1\) 找半天规律找不到 然后打了个表算是暴力了 \(T3\) 也暴。。。 太暴了。。。 \(T4\) 直接啥也不会 \(\text{T1}\) 考虑一个 \(a\) 的答案 \((c+b)(c-b)=a^2\) 或 \((
阅读全文
摘要:\(\text{Solution}\) 问题的转化,建成圆方树后,变为询问 \(S\) 在圆方树上对应的连通子图中的圆点个数减去 \(|S|\) 而根据 \(\text{SDOI2015 寻宝游戏}\) 里的一个重要结论 包含 \(S\) 的极小连通子图边权和的两倍等于将 \(S\) 里的点按 \(
阅读全文
摘要:\(\text{Problem}\) 给定一张简单无向连通图,要求支持两种操作: \(1.\) 修改一个点的点权。 \(2.\) 询问两点之间所有简单路径上点权的最小值。 \(\text{Solution}\) 不难想到建圆方树处理 那么两点之间的答案为圆方树上圆点和方点所连着的圆点的最小权值 于是
阅读全文
摘要:\(\text{Problem}\) 给定一张简单无向图,问有多少对三元组 \((s,c,f)\)(\(s,c,f\) 互不相同)使得存在一条简单路径从 \(s\) 出发,经过 \(c\) 到达 \(f\)。 \(\text{Solution}\) 很显然先建出圆方树,然后考虑 \((s,c,f)\
阅读全文
摘要:\(\text{Problem}\) 给定一张无向图,\(q\) 次询问,删去一个点或一条相邻两点间的边,问两点是否连通 询问独立 \(\text{Solution}\) 明显的用圆方树把图变成树 然后问一棵树中删去一个点或一条边两点连不连通 只要讨论点双上的点与边,\(LCA\) 与割去点的位置关
阅读全文
摘要:最小割基本模型 \(\text{Part 1}\) \(\text{Problem}\) 有 \(n\) 个物品和两个集合 \(A,B\),每个物品属于其中一个集合 将一个物品放到 \(A\) 代价为 \(a_i\),放到 \(B\) 为 \(b_i\) 还有一些限制 \(u,v,w\) 表示 \(
阅读全文
摘要:简要题解加心得 不得不说这是我打得比较痛苦且改得比较痛苦的一套题了 $\text{T1 1085. 【GDOI2008】彩球游戏}$ 整整改了三个半小时 直接崩溃了 明明本地可以跑过去,偏偏 $GMOJ$ 评测机很强势 考场没有想双向 $BFS$,只单向搜了 而且还用了 $STL$ 给予的“巨快”
阅读全文
摘要:\(\text{Solution}\) 这还是 [Lydsy2017省队十连测] 的题 不得不说 \(FFT\) 在字符串匹配中的妙啊! 前面做了道一维的题,现在这是二维的 从题目入手,不考虑可不可达 如果舰队从天而降,考虑其可以落到以那些点为左上角的点 先将地图压成一维,一行接着一行,礁石处为 \
阅读全文
摘要:\(\text{Solution}\) 首先这个题目描述得不清不楚 反正做法是过 \(A\) 城引一条直线,算出直线两侧点数的 \(min\) 找到最优直线,即 \(min\) 最小的 那么重点在判断一个点在直线的哪边 这是二维计算几何的基本操作 好好体会了一番向量积 其几何意义是两向量共定点构成的
阅读全文
摘要:\(\text{Solution}\) 自己的网络流技术太拉了 连这样的题都做不出来 对于一个怪物,剑术和法术两样东西有一样就可以了 不难想到二分图中最小点覆盖,一条边只有两个端点之一被选就被覆盖了 最小点覆盖等于最大匹配数 \(\text{Code}\) #include <cstdio> #in
阅读全文
摘要:\(\text{Problem}\) A君和B君在玩一种叫做新红黑树的游戏,即在一棵由红枝和黑枝构成的树上轮流砍树枝,每次砍一枝,A君每次只能砍红枝,B君每次只能砍黑枝,当其中某人已经没有树枝砍的时候,由另外一人砍,直到砍完全部树枝。树枝是带权的,每个人的总分是他砍的树枝的权值之和,那些由于其他树枝
阅读全文
摘要:\(\text{Problem}\) 给定一个整数序列 \(a[1..N]\),定义 \(sum[i][j]=a[i]+a[i+1]+...+a[j]\),将所有的 \(sum[i][j]\) 从小到大排序(其中 \(i,j\) 满足 \(1<=i<=j<=N\) ),得到一个长为 \(N*(N+1
阅读全文
摘要:\(\text{Problem}\) 大概就是带通配符的字符串匹配问题,输出所有比配位置 \(1\le n \le 3\times 10^5\) \(\text{Solution}\) 这是 \(FFT\) 在字符串匹配中的应用 默认下标以 \(0\) 开始,记通配符数值为 \(0\) \(A\)
阅读全文
摘要:\(\text{Problem}\) 经典的区间询问异或和等于 \(k\) 的问题 \(1 \le n \le 10^5\) \(\text{Solution}\) 考虑前缀异或和,那么统计变成 \(i, j \in[l-1,r](0\le i\le j\le n),s[i]\oplus s[j]
阅读全文
摘要:\(\text{Problem}\) 很久以前,在世界的某处有一个形状为凸多边形的小岛,岛上的居民们决定建一个祭坛,居民们任务祭坛的位置离岛的顶点处越远越好。 你的任务是求凸多边形内一点,使其与各顶点的距离中最短的距离最远,点在边上也可以。 这样的点可能有多个,你只需输出这些点与各顶点的最短距离。
阅读全文
摘要:\(\text{Problem}\) 我们有一个树,大小为 \(n\)。 考虑树上的一条路径,如果一个边的两个点都在这路径上,我们称这个边属于这个路径,如果一个边有且只有一个点在这路径上,我们称这个边与这个路径相邻。 现在每个边要么是黑色的要么是白色的,一开始所有边都是白色的。 我们有 \(3\)
阅读全文
摘要:\(\text{Solution}\) 非常经典的求区间最大字段和 不难想到线段树,考虑处理区间答案的合并 维护前缀后缀最大和与区间答案,合并考虑跨中点贡献即可 代码打得非常恶心。。。 \(\text{Code}\) #include <cstdio> #define RE register #de
阅读全文