请问为什么这两个循环顺序颠倒了以后就会错?应该没有用到没更新过的地方啊?
AC代码:
for(int j=1;j<=80;j++)
for(int i=1;i<=n;i++){
{
if(dp[i][j-1]<=n&&dp[i][j-1]>0){
dp[i][j]=dp[dp[i][j-1]][j-1];
}
if(dp[i][j]<0x2f2f2f)ans=j;
}
}
我的代码:
for(int i=1;i<=n;i++){
for(int j=1;j<=80;j++){
if(dp[i][j-1]<=n&&dp[i][j-1]>0){
dp[i][j]=dp[dp[i][j-1]][j-1];
}
if(dp[i][j]<0x2f2f2f)ans=j;
}
}