zoukankan      html  css  js  c++  java
  • 吝啬的国度 ---用vector 来构图

    根据题目可以看出来  有n 个城市 只有 n-1  条路线 那么  就可以确定这个图中  不存在 圆  所以从一个点到另一个点 只有一条唯一的路  所以从一个节点到另一个节点 那么 这个节点只有一个唯一的上节点

     1 /*   偶说不是一种形式 而是一种思想   小伙子当你悟透这句话的时候就没有你不能做的题了.   */
     2 #include<stdio.h>
     3 #include<vector>
     4 #include<string.h>
     5 using namespace std;
     6 vector<int>v[100005];   //   用不定长数组  去
     7 int city[100005];
     8 void DFS(int n)
     9 {
    10     for(int i=0;i<v[n].size();++i)   //  和 n  每个相邻的 城市都遍历一次
    11     {
    12         if(city[v[n][i]])
    13             continue;
    14         city[v[n][i]]=n;
    15         DFS(v[n][i]);
    16     }
    17 }
    18 int main()
    19 {
    20     int n,m,t,i,a,b;
    21     scanf("%d",&t);
    22     while(t--)
    23     {
    24         memset(city,0,sizeof(city));
    25         memset(v,0,sizeof(v));
    26         scanf("%d%d",&n,&m);
    27         city[m]=-1;
    28         for(i=0;i<n-1;i++)
    29         {
    30             scanf("%d%d",&a,&b);
    31             v[a].push_back(b);     //  a和 b 相连
    32             v[b].push_back(a);  //  当然  b 也和 a 相连
    33         }
    34         DFS(m);   //  从第几个城市开始
    35         for(i=1;i<=n;i++)
    36             printf("%d ",city[i]);
    37         printf("
    ");
    38     }
    39     return 0;
    40 }
  • 相关阅读:
    支付宝API
    三级联动
    高精尖面试题(七)
    高精尖面试题(六)
    高精尖面试题(五)
    第十二章、使用继承
    第十章、使用数组
    第十一章、理解参数数组
    第九章、使用枚举和结构创建值类型
    第八章、理解值类型和引用
  • 原文地址:https://www.cnblogs.com/A-FM/p/5272721.html
Copyright © 2011-2022 走看看