10 2020 档案
摘要:$\texttt 首先考虑 \(\texttt{dp}\) 维护题目要求的深度为 \(i\), 每个节点最多经过一次的不同有向路径数量 \(f_i\)。 明显的,只维护这个东西是不对的,因为忽视了这样的情况: 这样子这条路径是由原来的被蓝色圈圈包住的两个部分转移而来。 那么考虑记录 \(g_i\)
阅读全文
摘要:这题感觉不是很难,但是既然放在 \(\texttt{EDU}\) 的 \(\texttt{G}\) 题,那么还是写写题解吧。 $\texttt 首先看到 "子串",那么想到 \(\texttt{ACAM}\) 和 \(\texttt{SAM}\)。本篇题解就使用 \(\texttt{ACAM}\)。
阅读全文
摘要:二分图博弈 给定一张二分图,有一个棋子,每次可以将棋子移动到相邻的点,要求经过的点不能重复。谁不能移动谁输。 结论:先手赢当且仅当先手所在的点必然在最大匹配中。 普通博弈 CF1147C Thanos Nim 只要从后往前递推,就可以发现如果最小值出现次数大于 \(\frac{n}{2}\), 那么
阅读全文
摘要:期望dp 奇奇怪怪的离散随机变量的几何分布 CF605E Intergalaxy Trips 从后往前做。类似 dijkstra 的思想,每次找到当前情况的期望距离最小值进行增广。 期望距离可以随便推推式子快速得到。 CF850F Rainbow Balls 题解 P1654 OSU! 题解 P47
阅读全文
摘要:CF1421E Swedish Heroes 一个数 \(a\) 对答案的贡献只可能是 \(a\) 也可能是 \(-a\)。 设序列长度为 \(n\), 贡献为 \(-a\) 的数量为 \(m\), 那么 \(n+m \equiv 1 \pmod 3\) (很好证明),然后只要满足这个贡献序列 (设
阅读全文
摘要:struct Fenwt { int n; ll sum[N]; void add(int x, int y) { if(x == 0) return sum[0] += y, void(); for(; x <= n; x += (x & -x)) sum[x] += y; } ll qzh(in
阅读全文
摘要:哈夫曼树 CF37C Old Berland Language 哈夫曼树模板! 直接排序之后,维护一下每个节点有没有满就行了
阅读全文
摘要:P5641 【CSGRound2】开拓者的卓识 对于每一组 \(k = 1\) 计算贡献即可。 然后发现这是可以 \(NTT\) 卷的,然后就AC了。 P5401 [CTS2019]珍珠 珍珠 P4351 [CERC2015]Frightful Formula 对于每一个第一行和第一列的点算一下对答
阅读全文
摘要:普通分治 CF1442D Sum 有一个显然的结论:不取满的最多一个。然后对于每一位置个算一下除了这个位置的背包情况。 这个东西可以分治处理,从而做到 \(O(nk \log n)\) 点分治 CF321C Ciel the Commander 我太菜了,这都没有想到!!! 只要跑一遍点分治,在每一
阅读全文
摘要:这题没有压行就成 \(\texttt{Hard Version}\) 最短代码解了( 要知道这题那么 \(sb\) 就不啃 \(D\) 和 \(E\) 了。 $\texttt 首先有一个非常简单但是错误的多重背包的想法: 让分拆出来的 \(k\) 个数中,每一个数在十进制下每一位都是 \(0, 3,
阅读全文
摘要:$\texttt 蒟蒻 \(\texttt{7 min}\) 切 \(\texttt{F}\), 挽回了本一定掉分的局面/cy 分竟然还没有别人 5 题高 (本题解为目前 cf 上的最短代码解!) $\texttt 考虑计算对于每一个左端点的贡献。 所以可以考虑算这个左端点比后面的那个左端点多了多少
阅读全文
摘要:P2048 [NOI2010]超级钢琴 首先按照 前缀和最大值 建立 \(ST\) 表 对于每一个 \(i\) 维护一个以他为起始点的最大的 "超级和弦" (\(ST\) 表 \(O(1)\) 算)。 然后把这些值丢进一个优先队列里,每次取出最大的一个,然后按照其中最大值的位置 \(mid\) 把
阅读全文
摘要:蒟蒻语 这题太玄学了,蒟蒻写篇题解来让之后复习 = = 蒟蒻解 假设第 \(i\) 个颜色有 \(cnt_i\) 个珍珠。 \(\sum\limits_{i=1}^{n} \left\lfloor\frac{cnt_i}{2}\right\rfloor \ge m\) \(\sum\limits_{
阅读全文
摘要:巨佬的博客 普通生成函数 序列 \(a\) 的生成函数为 \(\sum\limits_{i=0}^n a_i x^i\) 指数级生成函数 序列 \(a\) 的指数级生成函数为 \(\sum\limits_{i=0}^n \frac{a_i x^i}{i!}\) P2012 拯救世界2 \(ans=
阅读全文
摘要:CF1430D String Deletion 先把字符串变成一个一个的块,然后贪心,如果能在里面删这个块的大小 \(> 1\) 或后面有块大小 \(> 1\) 那么就删,否则就删两个块(两个数)。 P6187 [NOI Online #1 提高组]最小环 显然最后是由 \(\gcd(k, n)\)
阅读全文
摘要:矩阵乘法 P6772 [NOI2020]美食家 题解 P6190 [NOI Online #1 入门组]魔法 首先答案是先做一次最短路,然后得到一个 \(\tt dis\) 数组,然后用 \(\tt dis\) 数组去让每一条边取反然后再跑一遍最短路。 把最短路看成 \(n\) 个矩阵的乘积,然后取
阅读全文
摘要:拉格朗日插值 \[f(x)=\sum\limits_{i=1}^{k+1} y_i \prod\limits_{i=1,i\neq j}^{k+1} \frac{x-x_j}{x_i-x_j} \] CF622F The Sum of the k-th Powers \(\sum\limits_{i
阅读全文
摘要:我是 zhoukangyang,一名来自浙江省,杭州市的高三菜鸡 \(\texttt{oier}\) 。 之后会在这里记录一些学习笔记和练习笔记。 请不要发无意义评论啊,无意义评论都会被删除 博客标有的难度是如何定的? Easy :我是喝喝粥,我一眼秒了,我觉得这题没啥技巧啊! Medium :完全
阅读全文
摘要:二项式反演 \[f_x=\sum\limits_{i=0}^x C_x^i g_i\Leftrightarrow g_x=\sum\limits_{i=0}^x (-1)^{x-i} C_x^i f_i \]也就是 \(f(x) = g(x + 1) \Leftrightarrow g(x) = f
阅读全文
摘要:P5655 基础数论函数练习题 首先 \(\operatorname{lcm}(a_l, a_{l+1},a_{l+2},..,a_r)\) 可以分拆成 \(\prod\limits_{i=l}^{r} b_i\) 可以让 \(b_i\) 为前面几个 \(b\) 中 不包含 的因数。即令 \(b_i
阅读全文
摘要:蒟蒻语 还是蒟蒻太菜了,这场 div1 竟然一题都没做出来/kk/kk/kk 蒟蒻解 首先我们把每 5 个点分为一组。然后分组结果大概是这样子: 可以看到首先下面需要有一条边来让整张图有一条支撑的路径。然后每一组内都有 6 条边。 那么这样子的图是可行的。原因: 对于每条线路,都至少经过两个车站,满
阅读全文
摘要:构造 CF1375E Inversion SwapSort 题解 CF1450C1 Errich-Tac-Toe (Easy Version), CF1450C2 Errich-Tac-Toe (Hard Version) 奇偶染色,然后选择需要改变的少的那一种染上就好了。 AT1982 [AGC0
阅读全文
摘要:题解 对于相邻的两个数 \(a_i, a_{i+1}\),如果 \(a_i > a_{i+1}\) 那么就交换两个数。最后反着做一遍。 先给出代码 : #include<bits/stdc++.h> #define L(i, j, k) for(int i = j; i <= k; i++) usi
阅读全文
摘要:FWT 巨佬的blog P3175 [HAOI2015]按位或 令 \(E(max(S))\) 为 \(S\) 出现最晚的一位,\(E(min(S))\) 为 \(S\) 出现最早的一位,\(S'\) 为 \(S\) 的补集。 \(E(max(S))=\sum\limits_{T\subseteq
阅读全文
摘要:dfs CF839E Mother of Dragons 最大团问题。 可以证明答案有值的一定是原图的一个团:对于不连边的点 \(x\) 和 \(y\),让 \(a_x = \sum\limits_{i = 1}^{n} a_{x, i} s_i\),\(a_y = \sum\limits_{i =
阅读全文
摘要:并查集 可撤销并查集模板: struct UFS { stack<ipair> stk; int f[N], d[N]; void init(int x) { L(i, 1, x) d[i] = 0, f[i] = i; } int find(int x) { return f[x] == x ?
阅读全文