兄弟们,我叉掉了管理的题解!
查看原帖
兄弟们,我叉掉了管理的题解!
525374
sgl654321风起 Oier楼主2023/9/2 12:32

LeavingZ 的题解,讲的确实挺好的,但是对于下面这组数据会出现死循环 TLE 的情况。

4 5 1 0 0
0 1
0 2
0 3
2 1
3 2

显然答案为 00,因为从 00 出发一步绝对不可能到达 00。但是这篇题解会出现死循环的情况。

事实上,对于所有 t=1t=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=1t=1 时,在主函数中减去了 11,然后在自定义函数中又有 k--,tt 就变成了 −1-1。

而 while(-1) 这一语句我其实没见过,但是在 Dev-c++ 和洛谷在线 IDE 中都会出现死循环。

这道题也没有说 t>1t>1 吧。所以这个数据是可以作为 Hack 数据的。

@chen_zhe @xht 等管理撤下这一篇题解。

不要以为您是管理我就不能叉掉您的题解!\color{white}{\text{不要以为您是管理我就不能叉掉您的题解!}}

2023/9/2 12:32
加载中...