LeavingZ 的题解,讲的确实挺好的,但是对于下面这组数据会出现死循环 TLE 的情况。
4 5 1 0 0
0 1
0 2
0 3
2 1
3 2
显然答案为 0,因为从 0 出发一步绝对不可能到达 0。但是这篇题解会出现死循环的情况。
事实上,对于所有 t=1 的情况,他都会死循环。
为什么?大家看到这里的代码。
Matr operator ^ (Matr a,int k)
{
Matr s=a;k--;
while(k)
{
if(k&1) s=s*a;
a=a*a;
k>>=1;
}
return s;
}
还有这里。
trans=trans^(t-1);
当 t=1 时,在主函数中减去了 1,然后在自定义函数中又有 k--,t 就变成了 −1。
而 while(-1) 这一语句我其实没见过,但是在 Dev-c++ 和洛谷在线 IDE 中都会出现死循环。
这道题也没有说 t>1 吧。所以这个数据是可以作为 Hack 数据的。
@chen_zhe @xht 等管理撤下这一篇题解。
不要以为您是管理我就不能叉掉您的题解!