Centroid - SGU 134(树的搜索)
题目大意:给你一个树,树每个点都有一个值, 这个点的的值就等于所有儿子里面点最多的那个儿子,值最小的就叫做重心,求出重心,还有所有等于重心的点,按照升序输出。
分析:就是一个简单的搜索树,求出来最大的儿子点数就行......
=============================================================================================================================
#include<stdio.h>
#include<algorithm>
#include<string.h>
#include<vector>
using namespace std; const int MAXN = ; int val[MAXN], MinVal, cnt, N;
bool used[MAXN];
vector<int> G[MAXN]; int DFS(int k)
{
int sumSon = ; for(int i=; i<G[k].size(); i++)
{
int v = G[k][i];
if(!used[v])
{
used[v] = true;
int son = DFS(v);
val[k] = max(val[k], son);
sumSon += son;
}
} val[k] = max(val[k], N-sumSon-);
if(MinVal > val[k])
{
MinVal = val[k];
cnt = ;
}
else if(MinVal == val[k])
cnt++; return sumSon + ;
} int main()
{
int u, v; scanf("%d", &N); for(int i=; i<N; i++)
{
scanf("%d%d", &u, &v);
G[u].push_back(v);
G[v].push_back(u);
} MinVal = MAXN;
used[] = true;
DFS(); printf("%d %d\n", MinVal, cnt); int flag=;
for(int i=; i<=N; i++)
{
if(val[i] == MinVal)
{
if(flag++)printf(" ");
printf("%d", i);
}
}
printf("\n"); return ;
}
Centroid - SGU 134(树的搜索)的更多相关文章
- 树形DP求树的重心 --SGU 134
令一个点的属性值为:去除这个点以及与这个点相连的所有边后得到的连通分量的节点数的最大值. 则树的重心定义为:一个点,这个点的属性值在所有点中是最小的. SGU 134 即要找出所有的重心,并且找出重心 ...
- JPA,EclipseLink 缓存机制学习(一) 树节点搜索问题引发的思考
最近在项目在使用JPA+EclipseLink 的方式进行开发,其中EclipseLink使用版本为2.5.1.遇到一些缓存方面使用不当造成的问题,从本篇开始逐步学习EclipseLink的缓存机制. ...
- Qt——树的搜索
一.Qt中的树 Qt中树的实现有两种方式.第一种是使用Qt提供的QTreeWidget,很多函数都封装好,比较方便:另一种是通过QTreeView实现,设置它的数据模型,比如使用QStandardIt ...
- JPA,EclipseLink 缓存机制学习——树节点搜索问题引发的思考
最近在项目在使用JPA+EclipseLink 的方式进行开发,其中EclipseLink使用版本为2.5.1.遇到一些缓存方面使用不当造成的问题,从本篇开始逐步学习EclipseLink的缓存机制. ...
- Qt——树的搜索实现源码
一.使用QTreeWidget 头文件: /************************************************************************ 树的搜索类 ...
- 使用requests爬取梨视频、bilibili视频、汽车之家,bs4遍历文档树、搜索文档树,css选择器
今日内容概要 使用requests爬取梨视频 requests+bs4爬取汽车之家 bs4遍历文档树 bs4搜索文档树 css选择器 内容详细 1.使用requests爬取梨视频 # 模拟发送http ...
- SGU 134.Centroid( 树形dp )
一道入门树dp, 求一棵树的重心...我是有多无聊去写这种题...傻X题写了也没啥卵用以后还是少写好.. ----------------------------------------------- ...
- SGU 134.Centroid(图心)
SGU链接: 时间限制:0.25s 空间限制:4M 题意: 给出一个树(节点数<=16000),一个节点的重量定义为从树中去除这个点后,新得到的所有树中节点最多的树的节点数.树的中心定义为所有节 ...
- SGU 134 Centroid
题意:给出一个树,每个点有一个value,value的意义是去掉这个点之后所有连通分量中点最多的那个连通分量的点数,这棵树的重心为所有点value的最小值,求重心,及重心都有谁. 解法:貌似是个树形d ...
随机推荐
- SQL语句like子句中的转义符 [转载]
如果想在SQL LIKE里查询有下划线'_'或是'%'等值的记录,直接写成like 'XXX_XX',则会把'_'当成是like的通配符.SQL里提供了 escape子句来处理这种情况,escape可 ...
- java中关于static的小知识
static能够修饰属性和方法.凡是static修饰的方法和属性都是和类的关系较大,都在加载的时候要特殊处理(包括属性和类的优先加载).下面比较下static修饰属性和方法时的区别: 一.修饰属性的时 ...
- ACM HDU 1021 Fibonacci Again
#include<iostream> using namespace std; int main() { int n; while(cin>>n) { if((n+1)%4== ...
- ACM YTU 《挑战编程》第一章 入门 Problem E: Graphical Editor
Description Graphical editors such as Photoshop allow us to alter bit-mapped images in the same way ...
- php实现无限级树型菜单(函数递归算法)
首先到数据库取数据,放到一个数组,然后把数据转化为一个树型状的数组,最后把这个树型状的数组转为html代码.也可以将第二步和第三步合为一步. 详细如下:1.数据库设计:脚本如下:CREATE TABL ...
- Mac OS X 好用的软件包管理工具 Homebrew
github地址:https://github.com/Homebrew/homebrew 安装方法:http://brew.sh/
- easyui-combobox小Demo
<script type="text/javascript"> $("#Function_TypeSelect").combobox({ onSel ...
- pushState与replaceState区别
history.pushState(state, title, url) 将当前URL和history.state加入到history中,并用新的state和URL替换当前.不会造成页面刷新. sta ...
- ubuntu下openGL的配置方法
This is a simple tutorial to show a new linux user (such as myself) how to setup freeglut and OpenGl ...
- OC语言-01类和对象
// cc 文件名.m -framework Foundation 编译链接 #import <Foundation/Foundation.h> //枚举性别 typedef enum{ ...