对 @EarthGiao 的题解提出疑问
查看原帖
对 @EarthGiao 的题解提出疑问
728483
wwwidk1234楼主2025/8/4 18:52

题解地址:https://www.luogu.com.cn/article/dtudfl83

题解原文中:

可以正序扫一遍然后找出到每一个点之前最长的差小于等于 kk 的序列(qian);然后再倒序找一遍找出到每一个点之后最长的差小于等于 kk 的序列(hou)。

但是代码中处理 hou 数组的时候是这么写的: hou[l] = max(hou[l] + 1,r - l + 1);

导致对于以下的数据,hou 数组的输出为 4 3 2 1 5 4 3 2 1 3 2 1

data.in
12 1
100 100 100 100 211 211 211 212 212 1218 1218 1218

个人认为代码中应写成 hou[l] = max(hou[l+1],r - l + 1); 这样 hou 数组的输出就为 5 5 5 5 5 4 3 3 3 3 2 1 更符合文章表述。

2025/8/4 18:52
加载中...