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)\) 的。
浙公网安备 33010602011771号