此题题解存在共同问题
查看原帖
此题题解存在共同问题
55251
Daniel13265楼主2022/2/21 14:45

此题的所有题解均未严谨地说明此题的一个结论「存在至少一组最优方案使得每个交叉路口海拔都为 0011,且海拔都为 0011 的交叉路口分别仅构成一个极大四连通块」,多只是用「发现」「显然」等语句一笔带过,而未做详细阐述。但是此结论是解决此题几乎必要的结论,而且并不显然

以最高赞的两篇题解为例:

@Karry5307

首先注意到最优方案中点权只有 0011,并且点权为 11 的和为 00 的分别仅构成一个连通块。

@chen_zhe

首先这个题原题好像有一句话是海拔高度不一定为整数。这是坑人用的,误导性提示。其实仔细一想就会发现既然如果可能是小数,那么最后的结果何必要保留整数?那么就可以把那句话当成出题人认为自己活在4月1日的话了。

考虑一个显然的贪心:因为消耗的体力是max{0,h}\max\{0,h\},所以我们并没有必要让海拔呈梯度的上升(也就是每次上升一截,再上升一截),如果直接一次上升到顶,这样可以更优秀。如果整张图都是00的高度,那么很明显是最好的,但是右下角必定是11就很麻烦。我们考虑让整张图左上角都是00,然后产生一个断崖,在右下角都是11即可。

前者直接提出「注意到」,但既未说明如何注意到,也未给出证明;后者的解释就是结论的再阐述,与未解释没有任何区别。

下面我给出我对此结论的简单证明:

下文「连通块」指「内部点高度相同的极大四连通块」。

对于一个方案,若存在高度小于 00 的点,则令所有这些点的高度为 00 更优,因为这些点之间的贡献减小为 00,而其他点的高度无论在调整前后都大于等于这些点的,所以这些点与其他点的贡献一定减小了。同理若存在高度大于 11 的点,则令所有这些点的高度为 11 更优。

现在每个点高度在 [0,1][0,1] 区间内,假设其不全为 0011。对于所有不包含西北角的连通块,找到高度最小的一个(称为 SS),这个连通块一定存在且不包含东南角。

  • SS 不与西北角所在的连通块相邻,则将其高度调整为与其相邻的点中的最小高度一定更优,因为 SS 内点之间的贡献不变为 00,而相邻点的高度无论在调整前后都大于等于这些点的,所以 SS 内的点与其相邻点的贡献一定减小了。
  • SS 与西北角所在的连通块相邻,则找到与之相邻的点中高度不为 00 且最小的(假设高度为 hh),SS 的高度一定在 00hh 之间。如果将 SS 的高度看作自变量 x[0,h]x\in[0,h],那么令 x=0x=0x=hx=h 一定不更劣,因为 SS 内点之间的贡献不变为 00,而 SS 内的点与其相邻点的贡献是线性函数,最小值一定能在两端取到。

无论是哪种情况,都存在一种不更劣的、连通块更少的方案。不断进行调整,最终每个点的高度一定会停于 0011。从而,一定存在一组最优方案使得点的高度都为 0011

虽然结论证明不算繁琐,但我认为题解中至少应当包含归纳/调整思想,并以某种形式提到「线性函数在区间上的最值一定在两端中取到」(例如直接写出或设变量做具体讨论)。

我认为,此结论作为本题现有的所有题解的必要结论,其并不显然证明应当作为题解的主体部分之一。阅读完本题的所有题解后,我认为它们均不符合题解提交注意事项,属于「只提供结论的题解」,应当被全部撤下。

2022/2/21 14:45
加载中...