#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ull;
const int maxn=510;
const int maxx=maxn*maxn;
ull n,k,a[maxn][maxn],u,v,t,q[maxx][2],tail,vis[maxn][maxn],len,p,ans;
//q[i][0]存批评者,q[i][1]存被批评者,len为循环长度,p为无规律长度
int main(){
cin>>n>>k;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>a[i][j];
u=1,v=2;
tail=1;
q[tail][0]=u,q[tail][1]=v;
vis[u][v]=1;
for(int i=1;;i++){
t=a[v][u];
u=v;
v=t;
++tail;
q[tail][0]=u;
q[tail][1]=v;
if(vis[u][v]==1) break;
vis[u][v]=1;
}
for(int i=1;i<=len;i++){
if(q[i][0]==q[len][0] && q[i][1]==q[len][1]){
len=tail-i;
p=i-1;
break;
}
}
if(k-p<=len) ans=q[k][0];
else{
k-=p;
k%=len;
if(k==0) ans=q[len+p][0];
else ans=q[len+k][0];
}
cout<<ans;
return 0;
}
这个代码本地运行时程序显示这样:
--------------------------------
Process exited after 6.994 seconds with return value 3221225620
请按任意键继续. . .
想请问各位大佬这是什么意思,有什么办法可以解决。