题目地址:POJ 3107
还是裸的树的重心,只不过这个要求将所有的重心都输出。很简单。
代码如下:

#include <iostream>
#include <string.h>
#include <math.h>
#include <queue>
#include <algorithm>
#include <stdlib.h>
#include <map>
#include <set>
#include <stdio.h>
#include <time.h>
using namespace std;
#define LL __int64
#define pi acos(-1.0)
//#pragma comment(linker, "/STACK:1024000000")
#define root 1, n, 1
#define lson l, mid, rt<<1
#define rson mid+1, r, rt<<1|1
const int mod=1e9+7;
const int INF=0x3f3f3f3f;
const double eqs=1e-9;
const int MAXN=50000+10;
struct node {int v, next;
} edge[MAXN<<1];
int head[MAXN], cnt, min1, n, num;
int sum[MAXN], ans[MAXN];
void add(int u, int v)
{edge[cnt].v=v;edge[cnt].next=head[u];head[u]=cnt++;
}
void init()
{memset(head,-1,sizeof(head));cnt=0;min1=INF;
}
void dfs(int u, int fa)
{int max1=0, i, tot=0;sum[u]=1;for(i=head[u]; i!=-1; i=edge[i].next) {int v=edge[i].v;if(v==fa) continue ;dfs(v,u);sum[u]+=sum[v];max1=max(max1,sum[v]);tot+=sum[v];}max1=max(max1,n-tot-1);if(min1>max1) {min1=max1;num=0;ans[num++]=u;}else if(min1==max1) {ans[num++]=u;}
}
int main()
{int u, v, i;while(scanf("%d",&n)!=EOF) {init();for(i=1; i<n; i++) {scanf("%d%d",&u,&v);add(u,v);add(v,u);}dfs(1,-1);sort(ans,ans+num);for(i=0; i<num; i++) {printf("%d",ans[i]);if(i!=num-1) printf(" ");else puts("");}}return 0;
}

POJ 3107 Godfather (树的重心)相关推荐

  1. POJ3107 Godfather树的重心

    POJ3107 Godfather 树的重心模板题 讲解在注释里,树的重心还是比较好理解的 #include<cstdio> #include<iostream> using ...

  2. POJ 3107 - Godfather

    本题与POJ 1655的区别是要把所有重心的点按顺序输出出来. // poj3107 Godfather #include <cstdio> #include <cstring> ...

  3. POJ 1655 求树的重心(树形dp)

    题目链接 树的重心: 若树上的一个节点满足其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心. 1.任选一个点为根,只要统计出每个点的子树大小,就能很快求出每个点子树节点的数量的最大值. ...

  4. POJ 3107 Godfather(树形DP(找重心))

    任重而道远 Description Last years Chicago was full of gangster fights and strange murders. The chief of t ...

  5. Poj 1655 【树的重心】

    题目链接:http://poj.org/problem?id=1655 题解: 设sum[i]为以i为根结点的树上有多少个结点,maxsum[i]为去掉i结点导致的森林中最大的树有多大 一开始建树时是 ...

  6. POJ 3107 Godfather 笔记

    公司的从属关系呈树状,n 对从属关系,每对从属关系不能确定谁的官职大.老板在公司中职务最大且只有一个,已知删除老板后的最大连通组件的大小最小.列举可能的老板.

  7. 【树形DP】树的重心详解+多组例题详解

    目录 定义: 性质: 算法分析: POJ 1655 Balancing Act(求重心) POJ 3107 Godfather P1364 医院设置(树形DP) 定义: 树的重心也叫树的质心.对于一棵 ...

  8. 树的直径,树的重心,树的分冶

    主要是利用了反证法: 假设 s-t这条路径为树的直径,或者称为树上的最长路 现有结论,从任意一点u出发搜到的最远的点一定是s.t中的一点,然后在从这个最远点开始搜,就可以搜到另一个最长路的端点,即用两 ...

  9. Godfather POJ - 3107 (求树的重心)

    题目链接 题意:给定一棵树,要求按编号从小到大输出重心. 树的重心: 定义:找到一个点满足其所有的子树中最大的子树节点数最少,那么这个点就算是树的重心. 性质: 1.删除重心后所得的所有子树,节点数不 ...

最新文章

  1. QT小例子GUI(主)线程与子线程之间的通信
  2. 电子测量与仪器第四版pdf_固定资产管理系统_资产分类名称(电子和通信测量分析仪器篇)...
  3. [react] 请说说什么是useImperativeHandle?
  4. 【李宏毅2020 ML/DL】补充:Structured Learning: Introduction Structured Linear Model
  5. 算法:回溯十四 Restore IP Addresses数字字符串还原为IP地址(2种解法)
  6. idea java EclipseFormatter代码格式化模板
  7. 十大免费SSL证书:网站免费添加HTTPS加密
  8. 新浪微博与微信公众号开发总结
  9. 网络爬虫法即将出台!!!小爬怡情,大爬over
  10. linux 搭建mycat
  11. 扩展RBAC用户角色权限设计方案(转载)
  12. 怎么保存python制作的饼图_Scribus中的Python脚本:制作饼图
  13. linux io apic,linux-kernel – IO-APIC级别与PCI-MSI-X之间的差异
  14. Mac键盘不起作用?苹果电脑键盘失灵解决教程
  15. 2021年“亿级”体量产品的五大发展趋势
  16. 可汉学院python_18-04-18 回顾 可汗学院:计算数论
  17. java找茬_一起来找茬(1)-开发写的神奇左连接
  18. 1.线性回归(Tensorflow)
  19. 风力发电控制系统的matlab,基于MATLAB的风力发电系统设计ppt课件
  20. 国货新品牌的量产之路!徒有产能的工厂老板也能拼出自己的品牌?

热门文章

  1. centerOS安装涛思
  2. Android性能优化系列篇(三):崩溃优化+卡顿优化
  3. 什么是3D游戏建模?成为一个游戏建模师需要具备哪些能力?
  4. 苹果手机怎么编辑word文档_有关PDF编辑神器,转换word文档不在话下
  5. java开发网易电话面试 一面总结
  6. 忍不住推荐给你的4个导航网站
  7. 为四川汶川大地震遇难者默哀
  8. 快速傅里叶变换(研二的我终于弄懂了)
  9. 华电软工非全研究生学习工作总结-研二开学总结
  10. lintcode backpack