zoukankan      html  css  js  c++  java
  • HDOJ树形DP专题之Centroid

    题目链接

    这题跟Balance Act那题差不多,求图的质点。我直接将那题改了一下提交,结果PE了一次,又WA了一次,最后发现是单case,多case的提交为什么WA呢?

    View Code
     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <vector>
     4 #define N 16000
     5 #define MAX(a,b) ((a)>(b)?(a):(b))
     6 using namespace std;
     7 vector<int> g[N];
     8 int n,p[N],d[N],sum[N],w[N],dmax,ans[N],cnt;
     9 void dfs(int u,int fa)
    10 {
    11     int i,v;
    12     d[u]=(fa==-1?0:d[fa]+1);
    13     dmax=MAX(dmax,d[u]);
    14     for(i=0; i<g[u].size(); i++)
    15     {
    16         v=g[u][i];
    17         if(v!=fa) dfs(v,p[v]=u);
    18     }
    19 }
    20 void dp()
    21 {
    22     int i,j;
    23     memset(w,0,sizeof(w));
    24     for(i=0; i<n; i++)  sum[i]=1;
    25     for(i=dmax; i>=0; i--)
    26     {
    27         for(j=0; j<n; j++)
    28         {
    29             if(d[j]!=i) continue;
    30             w[j]=MAX(w[j],n-sum[j]);
    31             if(i>0) w[p[j]]=MAX(w[p[j]],sum[j]),sum[p[j]]+=sum[j];
    32         }
    33     }
    34 }
    35 int main()
    36 {
    37     int i,t,u,v,min;
    38     scanf("%d",&n);
    39     for(i=0; i<n; i++)  g[i].clear();
    40     for(i=0; i<n-1; i++)
    41     {
    42         scanf("%d%d",&u,&v);
    43         u--,v--;
    44         g[u].push_back(v);
    45         g[v].push_back(u);
    46     }
    47     dmax=0;
    48     dfs(0,-1);
    49     dp();
    50     min=0x7fffffff;
    51     cnt=0;
    52     for(i=0; i<n; i++)
    53     {
    54         if(w[i]<min)  cnt=0,min=w[i],ans[cnt++]=i;
    55         else if(w[i]==min)  ans[cnt++]=i;
    56     }
    57     printf("%d %d\n",min,cnt);
    58     for(i=0; i<cnt-1; i++)  printf("%d ",ans[i]+1);
    59     printf("%d",ans[cnt-1]+1);
    60     return 0;
    61 }
  • 相关阅读:
    spring retry注解
    安装mongodb并配置
    spring boot Hello World
    Linux命令echo
    Linux vi命令
    查看linux是ubuntu还是centos
    Linux系统时间, 硬件BIOS时间的校准与同步
    MySQL优化查询 5.7版本
    战略由谁来制定
    VS2015快捷键
  • 原文地址:https://www.cnblogs.com/algorithms/p/2479673.html
Copyright © 2011-2022 走看看