2020 ICPC 南京区域赛
Replay
开局随机开题。不久 \(lzx\) 发现 K 题可做,简单交流做法后直接上机 AC 了。
随后 \(lcy\) 读完 L 题发现也很水,想了个做法和 \(lzx\) 讨论了一下,交 \(lzx\) 实现后提交结果 WA 。
检查了一下发现有边界情况。修改的过程中发现 \(lcy\) 和 \(lzx\) 在题意的理解上存在差异。重新读题后成功实现并 AC 。
接着 \(lcy\) 读完 F 题发现是数学题,于是交 \(lzx\) 推柿子。
此后 \(lcy\) 继续读题,而 \(gwt\) 也读完了 E 题并认为很有机会,很快地实现完之后却被告知 WA 。
于是 \(gwt\) 离开键盘思考修改方法,而 \(lzx\) 初步推出 F 的柿子,和 \(lcy\) 讨论后发现答案是一个函数的极值,乱搞一发结果 WA 。
然后 \(lzx\) 和 \(lcy\) 推测该函数是单峰函数,迅速写了一发三分后 AC 。
马上 \(gwt\) 也改好了 E 题,然而依旧 WA ,不过在 \(lcy\) 建议删除所有复杂的无解判断后终于 AC 。
此时大约是 \(13:30\) 。离比赛结束大约还有 \(150\) 分钟。
看榜后三位队员一致同意专攻 M 题。
首先 \(lcy\) 提出这可能是树形动态规划并推出转移方程,实现后发现问题很大。随后 \(gwt\) 认为此题应该是树上背包。
然而三位队员对该算法都不是很熟悉,在复杂度的问题上纠结了一会儿,
之后还是决定让数学选手 \(lzx\) 实现并修改。然而问题还是相当大。很快初始化问题被发现,修改后可以通过极特殊的情况。
又进行了很多次尝试,问题仍然出现在初始化过程中。
队员 \(lzx\) 和 \(gwt\) 均提出应该使用辅助数组来解决这个问题。然而辅助数组向动态规划数组的转移又成了问题。
三位队员又进行了很多尝试。程序仍然输出一大片的 INF 。无果。
最后的一点时间也来不及换题了。死磕 M 题也毫无建树。比赛结束了。
赛中一度杀入银牌区。最后去掉主办方打星队后 Rank 123 。
Solution
Problem L. Let’s Play Curling
统计相邻两个蓝队的壶间最多有几个红队的壶。
Problem F. Fireworks
答案是函数 \(f(x)=\LARGE{\frac{nx + m}{(1 - p \times 10 ^ {-4}) ^ x}}\) 的最小值。这是一个单峰函数。三分。
Problem M. Monster Hunter
树上背包。设 \(dp_{u,k,0/1}\) 表示结点 \(u\) 时使用 \(k\) 次法术且该点使用/不使用法术的答案。
容易得出
边界情况是 \(\large{dp_{u,0,1} = hp_u}\) 且 \(\large{dp_{u,1,0} = 0}\) 。
唯一要小心的是每棵子树的状态需要单独转移后再合并到父亲节点上。
转移时只要枚举状态到子树大小即可,否则复杂度不对。
Summary
我始终认为,算法完全是数学的一部分。然而我现在完全不愿意进行数学推理的现状,
对整个队伍的算法竞赛水平有相当大的打击。
而这次比赛直接暴露出的问题也与我相关程度最大。
我在浪费队友的时间。而我的其中一个队友只有最后一次区域赛参赛机会了。
训练量下降导致思维敏捷程度急剧下降的事实让我无法否认。我的算法竞赛水平不应该停留在这里的。
然而我的目标不能无休止地降低。不会、不能、也不要比现在更垃圾了!
明年金牌区见。

浙公网安备 33010602011771号