摘要:
Description "传送门" Solution 65分做法 先求出每个点到$1$号点的最短路,记为$d[i]$。然后按照海拔从大到小依次加边,并查集维护每个连通块中$d[i]$的最小值,并同时回答询问。 70分做法 形态为树,以$1$为根,询问时向上倍增。 满分做法 结合上两种做法,按照海拔建 阅读全文
摘要:
Description 给定 $n$ 个正整数 $a_i$,最少选出多少个 $a_i$ 使得他们 $gcd$ 为 $1$?$n,a_i\le 3\times 10^5$。 Solution 设 $f[i][j]$ 表示取出 $i$ 个数、$gcd$ 为 $j$ 的方案数,$cnt[i]$ 表示有多少 阅读全文
摘要:
Description "传送门" Solution 对 $T[1..m]$ 建立广义后缀自动机,离线,找出代表 $S[pl,pr]$ 的每个节点,线段树合并。 Code c++ include include include include const int N = 500005, M = 95 阅读全文
摘要:
Description "传送门" Solution by 讲的很好还最可爱哒gxb Code 阅读全文
摘要:
Description "传送门" Solution 如果只有左右两条链,一定是左链和右链的最大配最大、次大配次大,两条链这样合并后就变成了一条链,然后继续按照这种方法跟其他的链匹配即可。 一开始是这么写的,但是迭代器 $p$ 已经删掉了,再 $p$ 就会出奇怪的错误。 c++ p = s[a[u] 阅读全文
摘要:
枚举子集 for (int x = s; x; x = (x - 1) & s) {} 高维前缀和 for (int i = 0; i < m; ++i) for (int j = 0; j < (1 << m); ++j) if (j & (1 << i)) f[j] += f[j ^ (1 << 阅读全文
摘要:
定义 点与直线的位置关系 计算多边形的面积 旋转卡壳还可以计算: 两凸边形的最远距离(线1卡住凸边形1的最低点,线2卡住凸边形2的最高点,然后同时逆时针旋转,最远距离一定是点与点) 两凸边形的最近距离(线1卡住凸边形1的最低点,线2卡住凸边形2的最高点,然后同时逆时针旋转,最近距离可能是点与点、点与 阅读全文
摘要:
Description "传送门" Solution 先将原树转化成点分树: 然后维护三个堆: $c[i]$ 保存点分树中子树 $i$ 中的黑色节点到 $fa[i]$ 的距离; $b[i]$ 保存点分树中 $i$ 的每个儿子的 $c[i]$ 的最大值; $a$ 保存点分治的每个根 $i$ 的最大答案 阅读全文
摘要:
Description 红黑树是一类特殊的二叉搜索树,其中每个结点被染成红色或黑色。若将二叉搜索树结点中的空指针看作是指向一个空结点,则称这类空结点为二叉搜索树的前端结点。并规定所有前端结点的高度为 1。 一棵红黑树是满足下面“红黑性质”的染色二叉搜索树: (1) 每个结点被染成红色或黑色; (2) 阅读全文
摘要:
Description "传送门" Solution 〖一〗 设 $f[i][j]$ 表示前 $i$ 个数的乘积在模 $p$ 意义下等于 $j$ 的方案数,有 $$ f[i][j]=\sum_{k=0}^{p 1}f[i 1][k]\cdot h[j\cdot k^{ 1}] $$ 其中 $h[i] 阅读全文