2021清北学堂国庆刷题班Day5

比赛总结

T1

https://noip.ac/rs/show_problem/3693

$ n \leq 10^3 $ , 直接暴力逆元求解即可。

拓展:

给定 $ f_0 , f_1 $ , $ f_i $ 满足 $ f_i = f_{i - 1} + f_{i - 2} $ , $ f_0, f_1 \leq 10^6 $ , 求 $ g(f_0 | f_1 | ... | f_n) $ ?

发现 $ n $ 只需要枚举到 $ 60 $ 即可, 由于 $ 10^6 < 2^{20} $ 以及按位或的性质。

T2

https://noip.ac/rs/show_problem/3694

把 $ m $ 卡在某个 $ \frac {i \times (i - 1)}{2} $ 和 $ \frac {(i - 1) \times (i - 2)}{2} $ 之间, 令 $ r = m - \frac {i \times (i - 1)}{2} $ , 再最前面添 $ r $ 个 $ 1 $ , 接上 $ i - r $ 个 $ 2 $ , 最后加上一个 $ 98 $ , 剩余位置补全 $ 7861 $ 这样无关的数即可。

T3

https://noip.ac/rs/show_problem/3695

一开始树为空,将所有点的点权从大到小加进去,加入一个点后会形成新的连通块, 则树上经过这个最新加入点路径的权值就是该点的权值(路径长度从 $ 1 $ 到 该连通块的直径长度 都可以)。

令 $ p_1, p_2 , p_3, p_4 $ 为到新加的点最远的点, 使用 $ LCA $ 进行一些操作即可求解直径。

T4

https://noip.ac/rs/show_problem/3696

关于 $ a = b = 0 $ 的部分:

则 $ g(x) = cx + d $, 而 $ d -> d \times 2 ^ n $ , 考虑 $ cx $ , 那么想到每条边在 $ 2^{n - 2} $ 个子图中, 则 $ m $ 边会贡献 $ c \times m \times 2 ^ {n - 2} $ 。

关于 $ a = 0 $ 的部分:

其余同上,考虑 $ bx ^ 2 $ 的部分,$ x^2 $ 表示选两条边, 在整个图中选两条边,统计这两条边能被多少子图包含。

1.两边是同一条,则有 $ m $ 种情况, 有 $ 2 ^ {n - 2} $ 个子图包含这两条边。

2.两条边有公共点:枚举公共点, 则有 $ degree[v] \times degree[v - 1] $ 种, 有 $ 2 ^ {n - 3} $ 个子图包含。

3.两条边没有公共点:方案数为 $ m ^ 2 - 1 - 2 $, 有 $ 2 ^ {n - 4} $ 个子图包含。

$ 100 pts $ :

$ x ^ 3 $ 项即下相当于选 $ 3 $ 条边, 看这 $ 3 $ 条边被多少子图包含。

posted @ 2021-10-05 15:27  Shadow_hyc  阅读(76)  评论(0)    收藏  举报