最后一个的RE,其他全对,会是什么问题

#include <cstdio>

int n,t[200050];
int visited[200050]={0};
int mindist=200088;
int node;

int dfs(int i,int dist){
visited[i]=1;
if(!visited[t[i]])
dist=dfs(t[i],dist);
else
node=t[i];
if(node==i)
mindist=mindist<dist?mindist:dist;

return dist+1;
}

int main(){
// freopen("in.txt","r",stdin);
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&t[i]);
for(int i=1;i<=n;i++){
node=0;
if(!visited[i])
dfs(i,0);
}
printf("%d",mindist+1);

return 0;
}

1 条评论

  • @ 2016-07-19 15:38:49

    试试改成inline int dfs
    re原因应该是stack炸了

    • @ 2016-07-20 23:08:02

      改了就过了!多谢!一直以为还有手写栈

  • 1

信息

ID
1979
难度
6
分类
(无)
标签
递交数
4096
已通过
980
通过率
24%
被复制
9
上传者