• 洛谷 P2661 信息传递 题解


    每日一题 day3 打卡

    Analysis

    用并查集求最小环,用cnt记录最小环的长度。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 #define maxn 200010
     6 #define INF 2147483647/2-1
     7 using namespace std;
     8 inline int read()
     9 {
    10     int x=0;
    11     bool f=1;
    12     char c=getchar();
    13     for(; !isdigit(c); c=getchar()) if(c=='-') f=0;
    14     for(; isdigit(c); c=getchar()) x=(x<<3)+(x<<1)+c-'0';
    15     if(f) return x;
    16     return 0-x;
    17 }
    18 inline void write(int x)
    19 {
    20     if(x<0){putchar('-');x=-x;}
    21     if(x>9)write(x/10);
    22     putchar(x%10+'0');
    23 }
    24 int n,ans=INF;
    25 int prt[maxn];
    26 inline int find(int x,int &cnt)
    27 {
    28     cnt++;
    29     if(prt[x]==x) return x;
    30     else return find(prt[x],cnt);
    31 }
    32 int main()
    33 {
    34     n=read();
    35     for(int i=1;i<=maxn;i++) prt[i]=i;
    36     for(int i=1;i<=n;i++)
    37     {
    38         int T,cnt=0;
    39         T=read();
    40         if(find(T,cnt)==i) ans=min(ans,cnt);
    41         else prt[i]=T;
    42     }
    43     write(ans);
    44     return 0;
    45 } 

    请各位大佬斧正(反正我不认识斧正是什么意思)

  • 相关阅读:
    bootstrap
    bootstrap
    IDEA 配置maven
    jQuery
    jQuery
    jQuery
    jQuery
    Jquery
    【k8s】Pod-metadata
    【k8s】terminationMessagePolicy
  • 原文地址:https://www.cnblogs.com/handsome-zyc/p/11300148.html
Copyright © 2020-2023  润新知