两个题解没讲到的地方
查看原帖
两个题解没讲到的地方
174045
FZzzz楼主2022/9/20 19:23

首先我本来是每次反转两个位置,题解虽然给出了把两个 11 消掉的最少步数,但是为啥最优的方案就是按这样每次消掉两个 11 呢?

对于一个方案,每次操作我们在两个位置之间连一条边,这样每个为 11 的位置的度数一定是奇数,而其他的是偶数。那么我们可以每次找到同一个连通块里的两个 11,拉出来它们之间的一条链,执行这些边代表的操作然后删掉这条链,最后所有的节点度数都是偶数,剩下的边可以全删掉。

这相当于说,对于每个方案,都有一个每次消掉两个 11 的方案不劣于它。所以我们可以把问题转化成每次消掉两个 11

当然这个其实很直觉,而且证明也不难。但是我看题解里提都没提一嘴,你再懒也得写个“显然”吧。

再就是,为啥我要尽量多用第一种操作(距离为奇质数)呢?为什么没有可能,我虽然多用了第一种操作,但是这导致我必须用更多的第三种操作(距离为奇合数),最后答案反而更劣呢?

其实在最后计算答案的时候我们知道,第三种操作最多用一次。那我让第一种操作变少的时候第三种操作带来的贡献最多增加一,这就被第一种操作变少抵消掉了,所以直接最大化第一种操作的次数是优的。要再严谨一点的证明的话就是把两种方案的第一种和第三种操作的次数设出来然后写一写式子。

当然第三种操作最多用一次这个其实还是挺多题解讲到了的,但是是先有这个才使得你可以直接最大化第一种操作的次数,而不是你先来个“显然我们需要最大化第一种操作次数”,然后算贡献的时候再来说这个。

所以说还是那句话,怎么总是有这种题,有几个细节一个题解都没讲到呢?那要么就是……要么就是……要么就确实是所有写这样的题解的人的水平全都百倍于我吧。

2022/9/20 19:23
加载中...