zoukankan      html  css  js  c++  java
  • 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         
  • 相关阅读:
    java后端工具积累
    Java基础面试题整理
    MySql常问面试题
    jvm及并发面试题
    中间件redis kafka面试题
    笔记
    解决Git操作报错
    view的state和drawable的state 源码分析
    flutter_6_动态化简介
    有关namespace 命名空间
  • 原文地址:https://www.cnblogs.com/shihuajie/p/2647541.html
Copyright © 2011-2022 走看看