不知道是不是我太钻牛角尖
  • 板块P1484 种树
  • 楼主nectarl
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/12/24 16:23
  • 上次更新2023/12/24 18:23:18
查看原帖
不知道是不是我太钻牛角尖
909961
nectarl楼主2023/12/24 16:23

关于堆的题解们都把做法讲的很详细了,但关于这种做法的正确性这一块我一直无法说服自己。于是尝试自己证明。

用01串表示各数的拿取情况,将01010这样的以零开头和结尾的子串括起来表示一个分量。现假设拿了i-1个后的最优情况如下

(010)00(01010)0(010)00(0101)

但凡拿了i个后的最优拿取情况中,原来括号没括中的位置出现了1,那剩下的内容直接照搬i-1的拿取情况就行了,如果不照搬就可能会导致不最优。

这时可能的其他最优解就局限于把i-1方案某一个分量0、1置换的情况(给出样例中最后一个分量有点特殊,应该是不可能置换最后一个的,所以可以忽略他),可以发现以上两种i方案的可能情形,堆做法都能照顾到。

如此证明是否合理?求指教。

2023/12/24 16:23
加载中...