警示后人:一种可能的0分但过hack的错误
查看原帖
警示后人:一种可能的0分但过hack的错误
1415227
Wxb2010楼主2025/1/24 20:55

在查询最大连续长度的时候

返回值要统计 左侧最大连续长度 , 右侧最大连续长度 , 区间最大连续长度。

并且统计最大值的时候,不要像我这样写:

ans.rm1=b.rm1;
ans.lm1=a.lm1;
ans.m1=max(max(ans.lm1,ans.rm1),a.rm1+b.lm1);

其中 .m1代表区间最大,.lml/.rml 表示左/右侧最大连续长度。

ans是该区间答案,a是左孩子返回答案,b是右孩子~~

应该这样写:

ans.rm1=b.rm1;
ans.lm1=a.lm1;
ans.m1=max(max(a.m1,b.m1),a.rm1+b.lm1);

这种错误在数据范围小的时候往往能得到正确答案

所以可以过 样例,hack,讨论区数据,以及一些随机生成的小规模数据。

不过这么rj的错误也不会有别人错了

2025/1/24 20:55
加载中...