这是本文档旧的修订版!
# | = | Penalty | A | B | C | D | E | F | G | H | I | J | K |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
33 | 6 | 1223 20:23:41 |
00:43:29 (-1) |
04:32:18 (-3) |
(-1) |
02:03:26 (-1) |
02:34:44 (-4) |
04:28:51 |
03:00:53 |
Solved | A | B | C | D | E | F | G | H | I | J | K |
---|---|---|---|---|---|---|---|---|---|---|---|
Pantw | √ | √ | |||||||||
Withinlover | √ | O | √ | √ | |||||||
Gary | O | √ |
(√ for solved during VP, ○ for after VP, - for tried but not solved)
给一个边权两两不同的无向图。求最小生成树,以及最小生成树中使得所有点对最短路平均值的最小值。
$n\le 10^5, m\le 10^6$。
由于边权不同我们可以直接知道最小生成树是唯一的,那么求出来之后 DP 一下即可。
$n\times 20$ 的棋盘,有若干相同的棋子,每个格子上至多有一个棋子,移动方式是:
给定初始状态,问先手必胜还是先手必败。
由于 $20\times 2^{20}$ 不大,可以直接预处理出 SG 函数值。
然后就是经典的 Nim 游戏了。
给定一个数列,每次查询一个区间 $[l, r]$。输出区间的最大公约数 $x$,同时输出满足最大公约数为 $x$ 的区间 $[l', r']$ 的个数。
区间公约数查询是裸的ST表。预处理后直接回答。
针对第二问,可以发现最大公约数的取值不会太多。且固定 $l$ 时,$\gcd(a_l,a_{l+1},\dots,a_r)$单调递减,可以二分确定出每一次 $\gcd$ 变化的位置,然后用一个 $map$ 存一下。就做完了。
简易证明:考虑将 $a_l$ 质因数分解,易知当 $r$ 变化时, $\gcd$ 的值最多会下降其质因数个数次。
已知三个正整数 $n, m, p$,其中 $n$ 不含平方因子。
设 $k=\sum_{i=1}^{m}\varphi(i*m) \bmod {1000000007}$;
计算 $ans = k^{k^{k^{k\dots}}}\bmod p$,$k$ 有无限个。
大力推公式,设 $F(n, m) = \sum_{i=1}^m\varphi(i*n)$
$$F(n,m)=\sum_{i=1,i\%p!=0}^m\varphi(i*n)+\sum_{i=1,i\%p==0}^m\varphi(i*n)$$ $$=\varphi(p)\sum_{i=1,i\%p!=0}^m\varphi\left(i*\frac{n}{p}\right)+p\sum_{i=1,i\%p==0}^m\varphi\left(i*\frac{n}{p}\right)$$ $$=\varphi(p)\sum_{i=1}^m\varphi\left(i*\frac{n}{p}\right)+\sum_{i=1,i\%p==0}^m\varphi\left(\frac{i}{p}*n\right)$$ $$=\varphi(p)\sum_{i=1}^m\varphi\left(i*\frac{n}{p}\right)+\sum_{i=1}^{m/p}\varphi\left(i*n\right)$$ $$=\varphi(p)F\left(\frac{n}{p},m\right) + F\left(n,\frac{m}{p}\right)$$
第一个难题解决,注意下递归的边界就可以做了。
计算 $ans$ 时,迭代使用欧拉定理,$A^B\bmod C=A^{B\%\varphi(C)+\varphi(C)}\bmod C$,显然会很快收敛为 $0$,后面的无限多个 $k$ 就没有意义了。迭代计算即可。
给定 $n\times m$ 的一个网格,若无论外力如何作用,这个网格均不会变形,则称这个网格具有稳定性。显然初始的网格极易变形,是不具备稳定性的。如下图所示:
你可以在每一个格子上任选一个对角线添加约束条件,也可以选择不加。询问有多少种增加约束条件的方法,使得添加约束条件后的网格具有稳定性。
$2\times 3$ 的一个可能方案,此时网格不可变形。
选择两条对角线本质上并无区别,只是增加计数难度。
每一个位于 $(i, j)$ 的约束条件,本质上是固定了第 $i$ 行所有的竖边和第 $j$ 列所有的横边。
建二分图,将每一行的竖边视为一个点,每一列的横边视为一个点。则左侧有 $n$ 个点,右侧有 $m$ 个点,每一个约束条件视为从左到右的一条连边。则原问题转化为 $(n + m)$ 个点的联通图计数问题。但是要注意由于可以在两条对角线中任意选择,每条边的贡献为 $2$。
裸的联通二分图计数可以参考blog:连通二分图计数
这里,记 $H[i][j] = 3^{ij}$,$F, G$ 递推式不变, 便可以得到答案。
多组数据
给定空间中四点坐标,求围城的四面体的内接球半径以及球心坐标。
向量法可以计算出体积和表面积,进而得到半径
球心坐标太简单了,推推公式就行(狗头)
Time | Action |
---|---|
0 | Start |
300 | End |