2025.3.31 综合训练
A Gym 103306G Grid of Letters
简单题,但是讲个笑话:我暴搜写挂了。
然后我就写出了一种极其神经的做法:建图,因为只能往字母表中的下一个走,所以图一定是个 DAG,跑拓扑排序,记录最长路。
B Gym 104118I Item Crafting
因为没想到 long long
都能炸导致挂了不知道多少发,但是还好赛时过了。
我们预处理出每个物品需要的原材料数,然后就没了。因为 \(n \le 15\),考虑直接对终极产品进行状压。注意个数可以爆 long long
,甚至可以爆 __int128
,所以对超过原材料个数的物品标记为无解就好了。
C Gym 103443G The Treasure of the Sierra Jade
简单题,但是我赛时没调出来。
注意到 \(\text{lcm} _ {i = 1} ^ 8 i = 840\),而 \(nm\) 也只有 \(40 \times 40 = 1600\),所以考虑直接跑 BFS,注意一下时间,横坐标,纵坐标都要转移,并且要判断 \((dx,dy,t)\) 与 \((dx,dy,dt)\) 是否可行,因为是你先走,障碍再走。
时间复杂度是 \(\Omicron(nmLd)\) 的,\(d = 5,L = 840\),可以过。
吐槽一下输入,为什么输入的是 \((y,x)\) 啊。
D Gym 103371E Goose Coins
很神奇的题,先考虑一个数量最少的方案:从大到小,每次用 \(\lfloor \frac{p}{c _ i} \rfloor\) 个。
然后考虑拼凑一个和最大 / 和最小的方案,这个用 DP 来做:
设 \(dp _ {i,j,k}\) 表示转移完了第 \(i\) 个货币,还可以用 \(j\) 个,还需要 \(k\) 个第 \(i\) 个货币才能抵消完,对 \(\min / \max\) 分别 DP。
最后的复杂度是 \(\Omicron(n k ^ 2)\) 的。
E Gym 103688G Chevonne's Necklace
背包的变形题,只要发现背包的正确性就行。
因为答案是集合,是无序的,可以联想到背包同样是无序的。所以,我们按方案背包去做,记录 \(dp _{i}\) 表示大小为 \(i\) 的背包的方案数,则答案就是最大的 \(dp _ i \neq 0\),方案数就是背包的方案数。