求解WA(使用语言C)

样例能过,部分数据在codevs能过,但搞不清楚错在哪里
#include <stdio.h>
#define MAXn 200100
int i,j,k,min=MAXn,next[MAXn]={0},to[MAXn]={0},n,check[MAXn]={0};
int main(void)
{
scanf("%d",&n);
for(i=1;i<=n;i++) scanf("%d",&next[i]);
for(i=1;i<=n;i++) to[next[i]]++;
for(i=1;i<=n;i++)
if((to[i]==0)&&(check[i]==0)) {
j=i;
while(to[j]==0) {
check[j]=1;
j=next[j];
to[j]--;
if(to[j]) break;
}
}
for(i=1;i<=n;i++)
if(check[j]==0) {
j=i;
k=0;
check[j]=1;
while(check[next[j]]==0) {
j=next[j];
check[j]=1;
k++;
}
if(k<min) min=k;
}
printf("%d",k);
return 0;
}

2 条评论

  • @ 2016-11-08 18:36:09

    发现问题了…………极小的错误
    include <stdio.h>
    ………………
    for(i=1;i<=n;i++)
    if(check[j]==0) {
    j=i;
    k=0;** //k=1**
    check[j]=1;** //check[i]=1**
    while(check[next[j]]==0) {
    ...............
    printf("%d",k);** //printf("%d",min)**
    return 0;
    }

  • @ 2016-11-07 22:09:20
    //input your code
    ```c++
    
  • 1

信息

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