- 信息传递
- 2016-11-07 20:46:11 @
样例能过,部分数据在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 条评论
-
TBB000623 LV 7 @ 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
- 上传者