2026/4/6训练赛

https://cplusoj.com/d/senior/contest/69d09e9e1363e1a076a68615

ori
T1: P3543 [POI 2012] WYR-Leveling Ground
T2: P8029 [COCI 2021/2022 #3] Akcija
T3: HDU7078 Pty with card

T1 积木大赛 ab

无解:某个位置不满足 \(\gcd(a,b)|A_x\)
先差分。将每个位置表示为 \(d_i=ax_i+by_i\),这样答案是 \(\frac{1}{2}\sum|x_i|+|y_i|\)
要求 \(\sum x_i=0,\sum y_i=0\)

先考虑构造出不考虑 \(\Sigma x,\Sigma y\) 限制的解,他们一定是 \(x_i,y_i\) 中有一者是在原点附近的。
然后调整,只要我们的 \(x_i,y_i\) 不变号那么就每个位置的影响是固定的。并且我们一定是选择调整次数最小的方案。使用小根堆进行贪心。

T2 采购蔬菜 vege

Super Piano's Trick
按照时间排序。
\(f_{i,j}\) 表示现在考虑到物品 \(i\),选择 \(j\) 个的 dp 数组。其中 \(j\le d_i\)
转移显然是:\(f_{i,j}\to f_{i+1,j},f_{i,j}+w_i\to f_{i+1,j+1}\) 这样。每条路径对应了不同的方案。
维护 \(k\) 短路,先求出估价函数 \(g\) 表示每个节点到终点的最短路。
每层只需要维护预估最短路前 \(k\) 小即可。
时间复杂度 \(O(nk\log k)\)

T3 团战 team

套娃题,很可能内层问题有明显规律。
打表发现:

  • \(n\) 是偶数:
    • \(n\le 2\):一定会停下。
    • \(n-2\) 是 2 的幂:一定会停下。
    • 否则循环节是 \((n-2)^*\),其中 \(x^*\) 表示一直让 \(x\) 除以 2 直到不能整除后的结果。
  • \(n\) 是奇数:与 \(n+1\) 结果相同。

要证明的话可以观察一下最后状态,发现偶数一定是形如 \(x+2,x,x,x,x,x,\cdots\) 之类。
然后 2 的幂是因为只有一个数然后停了。

所以考虑点分治,对于每个 \(2^k\) 统计每个点延伸出的路径满足 \(2^k|dis\)\(\Sigma dis\),减去不合法情况。这样是 \(O(n\log^2 n)\) 的。

posted @ 2026-04-06 13:56  TallBanana  阅读(14)  评论(0)    收藏  举报