关于 hack 思路
查看原帖
关于 hack 思路
183609
hhoppitreeMadeline楼主2021/1/17 15:29

首先本题中有一个细节容易被忽略:

算最大值时有一句 Max=max(Max,node[i].y);,这句删掉应该不行因为可以比如 (5,0)(6,1)(7,2)(5,0)\rightarrow(6,1)\rightarrow(7,2) 然后下降 (8,1)(9,0)(n=9)\rightarrow(8,1)\rightarrow(9,0)(n=9),如果 只有 (1,1),(2,0),(3,0),(4,1),(5,0)(1,1),(2,0),(3,0),(4,1),(5,0)(6,1)(6,1) 是定点那最高点是 (7,2)(7,2) 可是会被误判,数据没有体现这一点。

还有代码里有一段:

if(f[i][1]||!node[i].y){
			Max=max(Max,(node[i].x-node[i-1].x+node[i-1].y+node[i].y)>>1);
		}

如果此时 f[i][1]\texttt{f[i][1]} 的精确值恰好为 mod\rm mod 的倍数会被 %\%00,最终不更新,但是实际要更新,只是因为恰好 %\% 成了 00,把模数设置成 2×mod2\times\rm mod 是无效的,总是可以被卡。

解决方法我认为有两种:

一种是如果取模后 =0=0(原来不为 00)就设为 mod\rm mod,因为没有减法,具体可能还要一个 tmp\rm tmp 代替加法结果或者 flagflag 记录是否加过来时限。

还有一种就是每个数打个标记,记录是否 >0>0

如何 Hack\rm Hack 还是请教大佬吧,毕竟我在这一块比较菜。

貌似可以把自己 Hack\rm Hack 掉?(光速逃

Hack\rm Hack 我 自 己

2021/1/17 15:29
加载中...