记录编号 209269 评测结果 AAAAAAAAAA
题目名称 [NOIP 2015]信息传递 最终得分 100
用户昵称 GravatarNVIDIA 是否通过 通过
代码语言 C++ 运行时间 0.151 s
提交时间 2015-11-21 16:00:47 内存使用 3.03 MiB
显示代码纯文本
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int n,ans=99999999,A[200010]={0},B[200010]={0};
  4. struct vist
  5. {
  6. int q;
  7. int s;
  8. }m[200010];
  9. int main()
  10. {
  11. ios::sync_with_stdio(false);
  12. freopen("2015message.in","r",stdin);
  13. freopen("2015message.out","w",stdout);
  14. cin>>n;
  15. for(int i=1;i<=n;i++)cin>>A[i];
  16. for(int i=1;i<=n;i++)
  17. {
  18. if(m[i].q!=0) continue;
  19. int vist=0,j=i;
  20. while(true)
  21. {
  22. vist++;
  23. if(m[j].q==i)
  24. ans=ans<(vist-m[j].s)?ans:(vist-m[j].s);//三目运算符判断
  25. if(m[j].q!=0) break;
  26. m[j].s=vist;
  27. m[j].q=i;
  28. j=A[j];
  29. }
  30. }
  31. cout<<ans;
  32. return 0;
  33. }