用户工具

站点工具


2020-2021:teams:i_dont_know_png:week_summary_15

2020.08.08-2020.08.14 周报

团队训练

团队会议

2020.08.11

  1. 团队训练底线是一周一次保持手感,具体安排下次会议后分配。
  2. 由于所有人的最早空闲时间是 $\max\{-\infty, 16, 20\}$ 号,因此这周先不安排训练了,然后下周两场团队训练。

个人训练 - nikkukun

本周作为机动周,主要目标是补题。

专题

比赛

2020.08.07 yukicoder contest 260 (Typical Game Contest)

题目 A B C D E F
通过
补题

比较有做的价值的专题场,全都是玩游戏。部分个人觉得有价值的题目解析见此

2020.08.09 AtCoder Grand Contest 047

题目 A B C D E F
通过
补题

2020.08.12 Codeforces Round #664 (Div. 1)

题目 A B C D E
通过 ×
补题

学习总结

路径覆盖问题

考虑一些路径覆盖问题,如果可以转化为“一开始有很多路径,每合并一个节点上的两个路径可以优化答案”的形式,那么可以按节点考虑合并,可能会有想不到的效果。

  • 例子 2CF 1394D - Boboniu and Jianghu):给一个点有权值和高度的树,定义好的路径是一条路上节点权值非降的路,选一些路径覆盖所有边,最小化每条路径上的点权和之和。做法是让一开始所有边都是单独的一条路径,然后每个节点内再尝试自己合并。当然合并过程是用到了 DP,但是这个思想是相同的。

数学

点乘和叉乘对于加法都满足分配律。

个人训练 - qxforever

专题

比赛

2020.08.09 AtCoder Grand Contest 047

题目 A B C D E F
通过
补题

2020.08.12 Codeforces Round #664 (Div. 1)

题目 A B C D E
通过
补题

学习总结

个人训练 - Potassium

专题

比赛

学习总结

正如 Special Pairs 解法中的处理方法一样,当直接处理 $a_i \text{&} a_j=0$ 的按位不易处理时,可考虑 $a_j$ 必为 $\text{~}a_i$ 的子集,这样就可以转化成 SOSDP 进行处理了。

本周推荐

nikkukun

AGC 047 C - Product Modulo

  • 题意:已知 $P = 200\ 003$ 是质数。给 $n \leq 2 \times 10^5$ 的数列 $a_1, a_2, \ldots, a_n$,值域在 $[0, P)$,求 $\sum _{i=1}^n \sum _{j = i+1}^n (a_i \cdot a_j \bmod P)$。注意结果不需要对 $P$ 取模。
  • 题解:如果存在一种卷积操作使得 $[x^n]H(x) = \sum _{i \cdot j = n} [x^i]F(x) \cdot [x^j]G(x)$,那么上面的问题就可以把每个数出现次数的多项式直接卷积做了。可以发现对数性质满足 $\log a + \log b = \log ab$,如果能将指数部分先映射到对数,普通卷积完再还原回来,那么就能实现上述卷积。
  • 经过测试发现 $2$ 是 $P$ 的一个原根,因此可以用 $\log_2(x)$ 进行映射。由于是指数上的运算,原根的循环节是 $\varphi(P) = P - 1$ 而不是 $P$,故做完多项式之后指数超出 $P - 1$ 的部分应当模一下 $P - 1$。
  • 系数并不是很大,直接 FFT 精度也是足够的。
  • 备注:利用原根性质操作的妙妙题,即使赛场上想出来了也还是觉得很妙。

2020 Multi-University Training Contest 8 D - Discover of Cycles

  • 题意:给你一个 $3 \times 10^5$ 点边的无向图,$3 \times 10^5$ 次询问由 $[l, r]$ 编号的边构成的图中是否有环,强制在线。
  • 题解:对每个左端点 $l$ 找最大右端点 $r$,使得 $[l, r]$ 边构成的图无环。可以注意到 $r$ 是单调不减的,因此用 LCT 维护 $[l, r]$ 构成的森林,每次移动 $r$ 就是查询连通性或加边,移动 $r$ 就是删边。
  • 备注:如果一直想着如何维护区间内的环会越想越复杂,那么只要维护的东西结构比较简单就行了。类似的思想还有 CF 1394B,如果只考虑如何维护强连通分量,就会难以发现整个图实际是很多小环的性质。

Yukicoder P1145 - Sum of Powers

  • 题意:给定 $a_1, a_2, \ldots, a_n$,对 $K = 1, 2, \ldots, n$ 求 $\sum _{i=1}^n a_i^K$ 模 $998\ 244\ 353$。
  • 题解:注意到 $\sum _{i=1}^n a_i^K = [x^K]\sum _{i=1}^n (1 + a_i x + a_i^2 x^2+ \cdots) = [x^K]\sum _{i=1}^n \dfrac 1{1 - a_ix}$,然后后面的东西在二分树上 FFT 合并分子分母即可。
  • 备注:看上去不像卷积的东西也可能用到多项式。

qxforever

CF 1144G

  • 题意:给一个长度为 $n$ 的序列,问能否分成两个子序列,一个递增一个递减,$n,a_i\le 2\times 10^5$
  • 题解:设 $dp_{i,0}$ 表示到 $i$ 递增序列的末尾值,$dp_{i,1}$ 表示到 $i$ 递减序列的末尾值。转移是比较容易的。
  • 备注:算是经典以及常见的一种 dp 状态设计,但是第一次见到还是很难想到。

Potassium

CF1329D Dreamoon Likes Strings

  • 题意:给一个字符串 $s(|s|\le 2e5)$,每次操作可以删除一段连续的、没有相邻两项相等的子串,求变为空串最少操作次数的方案。
  • 题解:由于直接处理比较麻烦,考虑特殊处理连续相同字母进而转化问题。类似差分的过程,将 $s$ 相邻两项相同合并为一个字符,拼接成 $s'$ (如 $abbcccdaa$ 合并为 $bcca$),则对 $s'$ 进行两种操作(删除某个字符或删除相邻两个不同字符)到空后,一次删除操作即可将原串清零。故考虑如何进行这两种操作。
  • 这是一个经典问题,考虑字符 $c$,设 $c$ 的出现次数为 $cnt_c$ ,$S=\sum_i cnt_i$,则如果对于某个 $c$, $cnt_c>S-cnt_c$ 可将所有 $c$ 以外的字符与 $c$ 匹配后剩余 $c$ 进行删除;否则任意删除相邻两项直至出现上述情况。
  • 备注:对字符串也可以进行这样类似差分的操作。
2020-2021/teams/i_dont_know_png/week_summary_15.txt · 最后更改: 2020/08/15 17:20 由 nikkukun