zoukankan      html  css  js  c++  java
  • POJ -- 1655

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<string>
     5 #include<algorithm>
     6 #define MAXN 20010
     7 using namespace std;
     8 typedef struct{
     9     int to,next;
    10 }Node;
    11 typedef struct PP{
    12     int id,par;
    13     bool operator < (const PP &a) const {
    14         if(par == a.par) return id < a.id;
    15         return par < a.par;
    16     }
    17 }Partition;
    18 Node edge[MAXN*2];
    19 Partition P[MAXN];
    20 int head[MAXN],vis[MAXN],cnt[MAXN],N;
    21 void addedge(int u,int v,int k){
    22     edge[k].to = v;
    23     edge[k].next = head[u];
    24     head[u] = k;
    25 }
    26 int dfs(int s){
    27     vis[s] = cnt[s] = 1;
    28     for(int i = head[s];~i;i = edge[i].next){
    29         int u = edge[i].to;
    30         if(!vis[u]) cnt[s] += dfs(u);
    31     }
    32     return cnt[s]--;
    33 }
    34 void dfs_partition(int s){
    35     vis[s] = 1;
    36     P[s].id  =s;
    37     P[s].par = N - cnt[s] - 1;
    38     for(int i = head[s];~i;i = edge[i].next){
    39         int u = edge[i].to;
    40         if(!vis[u]){
    41             P[s].par = max(P[s].par,cnt[u]+1);
    42             dfs_partition(u);
    43         }
    44     }
    45 }
    46 int main(){
    47     int t,u,v;
    48 //    freopen("in.c","r",stdin);
    49     scanf("%d",&t);
    50     while(t--){
    51         memset(head,-1,sizeof(head));
    52         scanf("%d",&N);
    53         int k = 1;
    54         for(int i = 1;i <= N-1;i ++){
    55             scanf("%d%d",&u,&v);
    56             addedge(u,v,k++);
    57             addedge(v,u,k++);
    58         }
    59         memset(vis,0,sizeof(vis));
    60         dfs(1);
    61         memset(vis,0,sizeof(vis));
    62         dfs_partition(1);
    63         sort(P+1,P+N+1);
    64         printf("%d %d
    ",P[1].id,P[1].par);
    65     }
    66     return 0;
    67 }
  • 相关阅读:
    寒假记录六
    寒假记录5
    寒假记录4
    寒假记录3
    寒假记录2
    寒假记录1
    hive数据库课堂测试
    第一周
    个人总结
    课程总结
  • 原文地址:https://www.cnblogs.com/anhuizhiye/p/3673310.html
Copyright © 2011-2022 走看看