山东寒假集训2026 II

Day 3

  1. P9220 「TAOI-1」椎名真昼
    我们发现,如果先手无法“一招致胜”,那么他就一定不胜;先手获胜的条件是能从一个黑点到达所有的黑点且不到达任何白点。后手同理,如果无法“一招致胜”,那么他也将不胜。如果存在入度为 \(0\) 的白点,或者只会有两个孤立黑点和一个黑点连向白点。

zwh:后手的获胜条件有点阴啊。

  1. CF555E Case of Computer Network
    为数不多听懂了的。
    我们考虑,这个 \((u_i, v_i)\) 的询问,如果它们在同一个边双连通分量中,那么一定是可以互相到达的。
    否则,我们考虑在边双缩点之后的图上,我们在 \(U, V\) 的路径上找到 \(LCA\),把 \(U\)\(LCA\) 上面的边打上标记;同时,把 \(V\)\(LCA\) 的点都打上标记。如果一条路径上重复两次打上标记(相反的那种),那么就不合法。

  2. P2491 [SDOI2011] 消防
    比较简单,我们可以知道这个东西一定是在直径上的。接下来,我们只需要用一个双指针来回移动保持中间的距离即可。

  3. P4381 [IOI 2008] Island
    神仙题。我们发现,这个基环树如果从中取出直径,那么我们就可以求出前缀和。令 \(f_u\) 表示在链上的点的子树内的最深深度,那么我们可以求出 \(f_v + f_u + s_v - s_u\)。于是我们维护 \(f_u - s_u\) 即可,每次取出最大的即可。如果反着,那就是答案 \(\max f_u + f_v + s_u + S - s_v\),我们直接维护 \(s_u + f_u\) 即可。

  4. AT_arc108_f [ARC108F] Paint Tree
    相当有趣。我们考虑直径两端的颜色是否一致。如果一致,那么答案固定。接下来我们枚举长度 \(d\),对于一个点 \(u\),看看能不能和 \(u\)\(v\)。如果 \(d1 > d\)\(d2 > d\) 无解;如果 \(d1 \le d\),但 \(d2 > d\) 那么只能是一种颜色;否则就是两种均可。答案就是 \(2^{cnt}\)

Day 4

  1. P2763 试题库问题
    使用二分图(或者网络流)。
    我们考虑如何建图。左侧放 \(n\) 个点,右侧放 \(m\) 个点。那么,我们发现每一个 \(i \in B\) 必须匹配上一个 \(j \in A\),然后跑一个最大匹配即可。考虑最大匹配记为 \(t\),那么判断 \(t\) 是否等于 \(m\) 即可。
    应该亦可以用二分图匹配(?),但是网络流可能更好输出答案。

  2. P2057 [SHOI2007] 善意的投票 / [JLOI2010] 冠军调查
    我们充分发扬谦让精神,把所有的 \(a_i = 0\)\(i\) 连向 \(s\)\(a_i = 1\) 的连向 \(t\)。如果 \(i\)\(j\) 是一对好朋友的话,那么我们在 \(i\)\(j\) 之间连一条双向边即可。然后答案就是最小割(也就是最大流)。

  3. P3153 [CQOI2009] 跳舞
    我们考虑二分答案,二分到 \(x\),接下来考虑如何进行 check。
    我们考拆点,我们把一个男生拆成两个人(听着有点恐怖),其中一个人表示愿意,另一个是不愿意。我们把从这个男生连向 \(x - k\)\(k\),然后按照同样的把女生拆成两个点,愿意和不愿意的。也就是说,男生和女生的图是对称的。如果能够拆成这样,那么我们进行网络流即可。

  4. P5934 [清华集训 2012] 最小生成树
    我们发现,这个\((u, v, L)\) 在最小生成树的条j件是对于任意 \((x, y, w)\)\(w < L\) 的话,使得 \(u\)\(v\) 不在一个连通块里面。我们钦定以 \(u\)\(v\) 为源点和汇点直接建图,去掉两端不在一个连通块中的答案。最大生成树同理可得。两部分答案加在一起就可以了。

  5. P9523 [JOIST 2022] 复制粘贴 3 / Copy and Paste 3
    好题。我们令 \(f_{l, r}\) 表示 \([l, r]\) 中的答案。我们可以得到 \(f_{l, r} = \min (f_{l + 1, r}, f_{l, r - 1}) + A\)
    另外,我们假设 \(s_{l, r} = s_{k, k + len - 1}\),我们可以定义一个变量 \(sum = B\),令 \(sum\) 加上 \(C\),否则加上 \(A\)
    最后,判断这个 \(s_{l, r} = s_{k, k + len - 1}\) 可以使用 hash。

yxh:这个题可以用哈分 + 二希。
yxh:数位DP(D发的“的”音)。
yxh:OI 里面的鬼畜题的需求,往往需要人类智慧

6.AT_arc153_d [ARC153D] Sum of Sum of Digits
我们设 \(f_{i, j}\) 表示后 \(i\) 个数字考虑 \(j\) 次进位后的答案。
我们可以发现,\(j\) 个一定是从所有数字后 \(i\) 位从大到小进行排序后选择前 \(j\) 个。然后我们直接枚举 \(x\) 的当前位,check 是否存在进位。如果存在的话那就转移到 \(j + 1\)。然后推推式子就行。

Day 5

  1. P9197 [JOI Open 2016] 摩天大楼 / Skyscraper
    我们设 \(f_{i, j, 0/1, 0/1}\) 表示现在已经分出了 \(i\) 段,答案为 \(j\),第 \(1\) 个位置是否加入、第 \(n\) 个位置是否加入的方案数。接下来,我们考虑如何转移。
    很明显,对于现在的一个数 \(k\),我们考虑:
  • 如果在折线段上增加一个,也就是转移到 \(i + 1\)
  • 我们也可以在某一段左边或右边加上这个数字,依旧转移到 \(i\)
  • 我们当然也可以把两个合并起来,转移到 \(i - 1\)

神奇的思路。

  1. P4597 序列 sequence
    我们考虑 DP。设 \(f_{i, j}\) 表示 \(i\) 处取得 \(j\),那么我们可以得到状态转移方程:

\[f_{i, j} = \min_{k \le j} f_{i - 1, k} + |a_i - j| \]

然后,我们知道这个 \(f_{i, j}\) 是一个凸性函数。那么,我们把每一个看做线段,那么也就是说斜率先减小,再增大。
我们假设这几个的线段斜率是 \(-2\)\(-1\)\(0\)\(1\),假设我们这个 \(a_i - j\)\(pos\) 位置与这个函数相交。我们可以发现,在 \(pos\) 左侧的点的斜率都会 \(-1\),右侧的点都会 \(+ 1\)。这样,我们考虑维护一个优先队列,在优先队列中放置 \(pos\) 的斜率。每次放入两次,找到最大的,答案加上 \(maxn - a_i\) 即可。

Day 6

xby:这个数论和博弈论大家可以放轻松,不经常考,反正考了大概率也不会。

  1. 证明费马小定理。
    已知 \(\gcd(a, p) = 1\),求证:\(a^{p - 1} \equiv 1 \pmod p\)
    考虑排列 \(X = {1, 2, ... , p - 1}\),我们把 \(X\) 的每一项乘以 \(a - 1\) 再对于 \(p\) 取模,即 \(Y = {1 \times a, 2 \times a, ... , (p - 1) \times a}\)。我们发现,\(Y\) 中的数字都不一致。
    一下默认对于 \(p\) 取模。
    假设 \(a \times x \equiv a \times y\),那么定有 \(a \times( x - y) \equiv 0\).
    由于我们可得 \(\gcd(a, p) = 1\),所以可得 \(x - y \equiv 0\)。由于 \(x, y \le p - 1\),所以可得 \(x = y\).
    故,\(\prod X \equiv \prod Y\),即 \(a \times 1 \times a \times 2 \times ... \times a \times (p - 1) \equiv 1 \times 2 \times ... \times (p - 1)\)
    也就是说 \(a^{p - 1} \times (p - 1) !\ \equiv (p - 1)!\)
    由于 \((p - 1)! \equiv 1\),所以可得 \(a^{p - 1} \equiv 1 \pmod p\)
    得证!
  2. 证明欧拉定理。
    已知 \(\gcd(a, n) = 1\),求证:\(a^{\phi(n)} \equiv 1 \pmod n\)
    证明:
    考虑 \(n\) 的同余:\(R = r_1, r_2, ..., r_{\phi(n)}\).
    \(L = R \times a\),即 \(L = a \times r_1, a \times r_2, ..., a\times r_{\phi(n)}\).
    同理,我们可知:\(L\)\(R\) 的排列。
    就有:

\[\prod L \equiv \prod R \]

\[a^{\phi(n)} \times \prod r_i \equiv \prod r_i \]

由于 \(\gcd (\prod r_i, n) = 1\)
故得证!

  1. Lucas 定理。

\[\binom{n}{m} = \binom{n \mod p}{m \mod p} \times \binom{\left \lfloor n \div p \right \rfloor }{\left \lfloor m \div p \right \rfloor } \]

证明太困难了。
4. 中国剩余定理。

\[\begin{cases}x\equiv a_1\pmod{n_1}\\x\equiv a_2\pmod{n_2}\\\dots\\x\equiv a_n\pmod{n_k}\end{cases} \]

可以通过以下方式构造:

  • \(n = n_1 \times n_2 \times ... \times n_k\)
  • 对于第 \(i\) 个方程,我们令 \(m_i = \frac{n}{n_i}\),令 \(t_i\) 为在 \(n_i\) 的意义下 \(m_i\) 的逆元
  • 我们令 \(c_i = t_i \times m_i\),注意,不要对于 \(n_i\) 取模
  • \(x = \sum_{i = 1}^{k} a_i \times c_i\)
  1. P2158 [SDOI2008] 仪仗队

简单题。
答案很明显,就是让我们求 \(\sum_{i = 1}^{n} \sum_{j = 1}^{n} [\gcd(i, j) = 1]\)
答案然后就更加明显了,答案是 \(2 \times \sum_{i = 1}^{n} \phi(i) + 1\)

  1. P2480 [SDOI2010] 古代猪文
    基础数论全家桶。
    考虑到 \(999911659\) 是一个质数,我们过果断使用欧拉定理。
    我们可以得到:

\[g^{\sum_{d|n} \binom{n}{d}} \equiv g^{\sum_{d|n} \binom{n}{d} \mod 999911658} \]

然后,难度就在求 \(\sum_{d|n} \binom{n}{d} \mod 999911658\)。然后,我们通过惊人注意力得到:\(999911658 = 2 \times 3 \times 4697 \times 35617\),然后,我们可以通过 exgcd 对于这四个质数分别求解,然后再使用 crt 进行合并即可。

注意到题目中出现了 PKU(Pig Kingdom University)。

  1. P1463 [POI 2001 R1 / ZJOI2006 / HAOI2007] 反素数

xby:这种题一般不能称之为题。

观察到 \(X = \prod p_i^{q_i}\),我们得发现 \(q_i\) 必须是单调不降低的。如果出现下降,那么我们一定可以交换使得 \(X\) 更小。
注意得到 \(X\) 其实只需要不超过 \(12\) 个质数即可,搜索完了随手打个表就能过。

  1. 证明 Nim 博弈论正确性。
    已知:\(S = x_1 \oplus x_2 \oplus ... \oplus x_n\),求证:\(S \ne 0\),先手必胜;否则必败。
    考虑使用数学归纳法:
  • 当所有 \(x_i = 0\),此时 \(S = 0\),故先手必败;
  • 如果 \(S \ne 0\),那么必定存在一个 \(k\),使得 \(S\)\(k\) 位是 \(1\),那么此时一定存在一个 \(x_i\) 的第 \(k\) 位是 \(1\)。然后,我们拿走 \(2^{k - 1}\) 个石子,那么一定是合法的;
  • 同理,我们可得 \(S = 0\) 的时候一定存在使得 \(S \ne 0\) 的方案。
    综上,Nim 博弈论的正确性得证!
  1. P5675 [GZOI2017] 取石子游戏
    考虑 Alice 的必输条件:
  • \(S = 0\)
  • \(S \ne 0\) 但是 \(a_1 < S2\)
    考虑 DP。令 \(f_{i, j}\) 表示前 \(i\) 个中,钦定一个作为第一个,疑惑和是 \(j\) 的方案数。这个可以通过 \(O(n^3)\) 进行转移。
  1. P2148 [SDOI2009] E&D

xby:咱们打个表

通过打表可得,\(f_{i, j} = f_{\frac{i}{2}, \frac{j}{2}} + 1\),当且仅当 \(i \equiv 0 \pmod 2\)\(j \equiv 0 \pmod 2\)\(f_{i, j} = 0\)

  1. P3480 [POI 2009] KAM-Pebbles
    考虑做差分,即对于差分数组上进行 Nim 阶梯博弈,不知道为啥有紫。

Day 7

  1. AT_agc048_d [AGC048D] Pocky Game
    一个使用 DP 来维护博弈论的。
    首先我们注意到一个性质:先手拿的东西越多越好,也就是 \(a_1\) 越大越好。
    正确性显然。
    考虑 DP。我们令 \(f_{l, r}\) 表示 \([l + 1, r]\) 区间同原序列,此时要想获胜的 \(a_l\) 的最小值。令 \(g_{l, r}\) 的状态类似,和先手的差不多。
    考虑转移。\(f_{l, r} = 1\) 的结论是 \(a_r < 1\),否咋答案就是 \(f_{l + 1, r} + a_r + 1 - g_{l + 1, r}\)

xby:好,这个全部内容已经结束,下面开始吹水环节。

posted @ 2026-02-11 11:13  Bob1108  阅读(17)  评论(0)    收藏  举报