2020.08.01-2020.08.07 周报
团队训练
团队会议
个人训练 - nikkukun
专题
比赛
2020.07.31 yukicoder contest 259
题目 | A | B | C | D | E | F | G |
通过 | √ | √ | √ | √ | | | |
补题 | | | | | √ | √ | |
2020.08.02 AtCoder Beginner Contest 174
题目 | A | B | C | D | E | F |
通过 | √ | √ | √ | √ | √ | √ |
补题 | | | | | | |
学习总结
个人训练 - qxforever
专题
比赛
2020.08.02 AtCoder Beginner Contest 174
题目 | A | B | C | D | E | F |
通过 | √ | √ | √ | √ | √ | √ |
补题 | | | | | | |
2020.08.07 Codeforces Global Round 5
题目 | A | B | C1 | C2 | D | E | F |
通过 | √ | √ | √ | √ | √ | | |
补题 | | | | | | | |
学习总结
个人训练 - Potassium
专题
比赛
学习总结
本周推荐
nikkukun
yukicoder contest 259 E - 面積Nの三角形
题意:给定 $n \leq 10^6$,求有多少个边长是整数且均大于 $1$ 的三角形面积为 $n$。
题解:考虑海伦公式 $S = \sqrt {p (p-a)(p-b)(p-c)}$,其中 $p = \dfrac {a + b + c}2$。做代换 $\begin{cases} x = p-a \\ y = p-b \\ z = p-c \\ p = x + y + z \\ \end{cases}$,有 $S^2 = xyz(x + y + z)$,且显然 $(x, y, z)$ 与 $(a, b, c)$ 一一对应。注意到 $n$ 的因数是 $O(n^{1/3})$ 级别的,因此可以暴力枚举 $x, y \mid n^2$,解一个二次方程可以得到 $z$,验证结果是否满足三角形三边关系即可。
备注:通过换元得到一个较好的关系式,进而解决问题。如果一开始就考虑用三角函数去表示面积的话,后面基本就没法做了。这个代换法称为 Ravi 变换,更多应用
见此。
qxforever
CF903G
题意:给两条链 $A,B$ ,$A_i$ 到 $A_{i+1}$ 和 $B_i$ 到 $B_{i+1}$ 有流量。$A$ 到 $B$ 有一些连边。可以修改 $A$ 中某些边的流量,$q$ 组询问 $A_1$ 到 $B_n$ 的最大流。 $n,q\le 2\times 10^5$
题解:考虑最小割,我们在 $A$ 和 $B$ 中最多割掉一条边,以及一些 $A,B$ 之间的连边。假设在 $A,B$ 中割的边为 $i,j$ ,可以枚举 $i$ ,用线段树维护出对应 $j$ 的最小割。而修改时,每个 $i$ 对应的割边已经确定,只需要在线段树上点修改维护最小值即可。
备注:非常妙的图的性质配合线段树维护。
Potassium
CF827E Rusty String
题意:给一个 ‘a’ ‘b’ ’?‘ 三种字符组成的串,’?‘ 代表可以选取 ’a‘ ’b‘ 任意一种字符。求所有可能的循环节长度,循环节在字符串结尾可以被截断。
题解:设 $x$ 为循环节,暂时把 '?' 作为通配符处理,分别处理 'a' 'b',则设 $f(x)=[s_x='a'], g(x)=[s_x='b']$ ,$h(x)=\sum_{i=x}^{n-1}f(i)g(i-x)$ ,$x$ 不是循环节当且仅当 $h(x)\neq 0$。考虑 '?' 不是通配符,于是充要条件变成充分条件。观察到当 $p$ 是合法循环节时 $kp$ 也必然是合法循环节,且如果全部 $kp$ 都是合法循环节,那么 $p$ 也必然是合法循环节。枚举一下筛掉不合法的即可。
备注:对于循环节倍数性质的观察很重要。