• nyoj20 吝啬的国度


     1 #include<queue>
     2 #include<vector>
     3 #include<cstdio>
     4 #include<cstring>
     5 #include<iostream>
     6 using namespace std;
     7 queue<int> q;
     8 int f[100010];
     9 vector<int> m[100010];//不能用二维数组,否则一直超内存,用vector定义二维数组虽然不超内存,但超时,因为它在定义是很耗时间 
    10 int main()
    11 {
    12     int i,a,b,k,len,n,start,T;
    13     scanf("%d",&T);
    14     while(T--)
    15     {
    16         scanf("%d%d",&n,&start);
    17         for(i=1;i<=n;++i)//记得清空啊! 
    18             m[i].clear();
    19         for(i=1;i<n;++i){
    20             scanf("%d%d",&a,&b);
    21             m[a].push_back(b);
    22             m[b].push_back(a);
    23         }
    24         q.push(start);
    25         f[start]=-1;
    26         while(!q.empty()){//一般的bfs 
    27             k=q.front();
    28             q.pop();
    29             len=m[k].size();
    30             for(i=0;i<len;++i)
    31                 if(!f[m[k][i]]){
    32                     q.push(m[k][i]);
    33                     f[m[k][i]]=k;
    34                 }
    35         }
    36         for(i=1;i<n;++i)
    37             printf("%d ",f[i]);
    38         printf("%d\n",f[i]);
    39         memset(f,0,sizeof(f));//注意清零 
    40     }
    41     //system("pause");
    42     return 0;
    43 }        
    44         
  • 相关阅读:
    9.17
    9.14
    9.13
    9.13
    9.11
    9.28
    10 .19 知识点
    redux
    react路由
    react的三大属性
  • 原文地址:https://www.cnblogs.com/shihuajie/p/2647541.html
Copyright © 2020-2023  润新知