POJ 1655 求树的重心

pytorch超详细安装教程,Anaconda、PyTorch和PyCharm整套安装流程 本文介绍基于Anaconda环境以及与PyCharm结合,安装PyTorch深度学习框架。 阅读详情

POJ 1655

题意:求出树的重心 x 以及 max_part(x) 的值。

设max_part(i) 表示在删除节点x后产生的子树中,最大的一颗的大小。使max_part函数取到最小值的节点p就称为征颗树的重心。

树的重心的几条性质:

1、找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心。
2、以这个点为根,那么所有的子树(不算整个树自身)的大小都不超过整个树大小的一半。
3、树中所有点到某个点的距离和中,到重心的距离和是最小的;如果有两个重心,那么他们的距离和一样。
4、把两个树通过一条边相连得到一个新的树,那么新的树的重心在连接原来两个树的重心的路径上。
5、把一个树添加或删除一个叶子,那么它的重心最多只移动一条边的距离。

#include<iostream>
#include<cstdio>
#define mem(a,b) memset((a),b,sizeof(a))
typedef long long ll;
const int N=100010;
using namespace std;
int ver[40010],Next[40010],head[20010],Size[20010],vis[20010];
int tot,n,pos,ans;
void init()
{
    tot=0;
    ans=n;
    pos=1;
    for(int i=1;i<=n;i++)
        {head[i]=0;vis[i]=0;Size[i]=0;}
    for(int i=1;i<=n*2;i++)
        {ver[i]=0;Next[i]=0;}
}
void add(int x,int y)
{
    ver[++tot]=y;Next[tot]=head[x];head[x]=tot;
}
void dfs(int x)
{
    Size[x]=1;
    vis[x]=1;
    int max_part=0;
    for(int i=head[x];i;i=Next[i])
    {
        int y=ver[i];
        if(vis[y])
            continue;
        dfs(y);
        Size[x]+=Size[y];
        max_part=max(max_part,Size[y]);
    }
    max_part=max(max_part,n-Size[x]);
    if(max_part<ans)
    {
        ans=max_part;
        pos=x;
    }
}
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        init();
        int x,y,z;
        for(int i=1;i<=n-1;i++)
        {
            scanf("%d%d",&x,&y);
            add(x,y);
            add(y,x);
        }
        for(int i=1;i<=n;i++)
        {
            if(vis[i])
                continue;
            dfs(i);
        }
        printf("%d %d\n",pos,ans);
    }
    return 0;
}

 

xhs私信协议分析 之前分析过xhs的shield算法,今天再聊聊xhs的私信,文章仅供学习参考研究交流,如有侵权请联系删帖。经过抓包分析发现私信接口并不是走的http协议,而是socket协议。而要获取socket包则需要使用wireshark软件1、protobuf的包体中的序号7,多次验证后发现文字信息的需要需要固定成12、protobuf的包体中的序号12,多次验证后发现文字信息的需要需要固定成1后续有时间的话,再研究一下视频和图片格式的私信协议,这次就分析到这里吧。 阅读详情

相关推荐

LeGo-LOAM源码篇:源码分析(3)

mapOptmization.cpp,主要内容包括回环检测、scan-to-map位姿优化、因子图。

slamml 1382

POJ-1655-树的重心

树的重心模板题 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <map> #include <queue> #include <functional> #include <vector> #include <stack> #inc

lifeforge的博客 245

医疗AI Agent实战:从零搭建一个能看病的智能助手(附完整代码)

本文详细介绍了如何从零搭建一个医疗AI Agent智能助手,涵盖核心架构设计、症状推理引擎开发、安全与合规实现以及系统集成等关键环节。通过完整的代码示例和实战案例,帮助开发者快速构建具备医疗咨询能力的智能Agent,提升医疗服务的效率和质量。

ss78901的博客 467

Poj 1655 【树的重心】

题目链接:http://poj.org/problem?id=1655 题解: 一开始建树时是取小的点指向大的点,然后一直WA后来发现这样建树是有问题的,可能会有(1,3)(2,3)这种出现1->3,2->3导致1、2不联通的情况出现。 #include #include #include #include #include #include #include #inc

t51645的博客 412

机器人动力学与控制学习笔记(一)————机器人控制概述

一、概述 1、机器人控制的目的 对自由运动机器人来说,控制的目的是要控制机器人手端的位置和姿态(以后统一简称为位姿),即所谓位置控制问题。这时希望机器人手端所达到的位置称为期望位置或期望轨迹。期望轨迹可以在机器人任务空间中给出,也可以通过逆运动学关系转化为机器人关节空间中的期望轨迹。期望轨迹通常有两种形式:一种是一个固定位置(即固定点),另一种是一条随时间连续变化的轨迹。自由运动机器人位置控制的目的,是要使机器人手端从任意起始位置出发都能到达期望轨迹。当期望轨迹是固定点时的位置控制称为定...

冰与火的青春的博客 6881

零基础入门simulink仿真--通信领域的调制解调技术:基于Simulink的PM信号调制与解调仿真建模示例

PM的基本原理是将基带信号(如语音或音乐信号)加载到高频载波信号的相位上。通过改变载波的瞬时相位,可以实现信息的传输。PM的优点包括抗噪声能力强、频谱利用率较高等,但其解调过程相对复杂。通过Simulink,我们可以通过模块化的建模方式实现PM信号的调制和解调过程,并观察信号在信道中的传输效果。通过本指南,我们介绍了如何基于Simulink搭建一个完整的PM信号调制与解调仿真模型,并进行仿真和性能评估。背景介绍:理解PM信号调制与解调的基本原理及其应用。所需工具和环境:列出进行PM仿真所需的工具和环境。

amy_mhd的博客 604

poj 1655(3107、2378) 求树的重心

题意:求树的重心。树的重心定义为:

dearmango 650

STM32 使用SYN6288语音模块

本篇文章带大家学习一下SYN6288语音模块,这个模块可以用于车载设备,语音电子书等众多产品当中,而且这个模块支持多种编码格式,GB2312,GBK等字符编码格式。SYN6288语音合成模块是一种语音合成设备,其可实现文字转语音功能,将输入的文字信息通过内部的处理和合成,输出相对应的语音信息。SYN6288模块具有语音合成质量高、输出音质好、使用方便等特点,因此广泛应用于语音播报、语音提示、语音识别、智能家居、智能家电、安防监控等领域。支持多语言:包括中文、英文、日文、韩文等多种语言。

m0_49476241的博客 2万+

poj - 1655 Balancing Act

给出一个树,若去掉其中一个结点,剩下的子树中规模最大的树的规模(估且称为D值),就是该点的D值。求所有结点中D值最小的点,输出点及其D值。 这题用两次DFS,第一次求出所有结点的子结点数,第二次求出所有结点的D值。 1 #include <stdio.h> 2 #include <string.h> 3 #include <vector> ...

weixin_34061482的博客 158

标准测试测试数据STDF学习笔记

本文介绍了STDF(Standard Test Data Format)文件的结构与解析方法。首先详细说明了STDF记录的组成,包括记录头类型(REC_TYP和REC_SUB)、数据类型定义、时间日期格式以及无效数据标识。重点分析了25种主要记录类型的功能、数据内容和出现位置,如FAR、MIR、MRR等关键记录。然后介绍了基于pystdf开源工具的解析方法,包括自带脚本的使用和自编程解析流程,通过事件驱动机制处理数据流。特别指出测试数据是按照PIR→PTR/MPR/FTR→PRR的循环模式组织。文章为ATE

歌颂苦难的行为是无耻的; 1513

RuoYi-Cloud-Plus使用minio进行文件上传图片后无法预览解决_修改minio配置minio桶权限---SpringCloud工作笔记198

在文件管理的位置,发现刚刚上传的图片文件,会显示 预览图片失败 后来经过多方查看,发现是minio的配置的问题。可以看到首先登录RuoYi-Cloud-Plus系统然后,打开文件管理页面可以看到,当上传了图片文件以后。登录以后,选中左侧Buckets,可以看到有自己用的桶,找到以后点击打开。显示文件展示中,文件预览失败,那么这个时候,去修改minio的配置。可以看到,点击配置管理,这里我们启用的是minio对吧。默认是没有配置的这个时候,是允许下载,但不允许预览的.

添柴程序猿的专栏 5567

POJ_1655_Balancing Act

//树形DP,TREE DP。这里使用邻接表存储树,可以改进的一点就是使用动态分配数组。 #include #include #include int f[20001]; int n; //树的节点的表示 typedef struct node { int num; struct node *next; }; //建立头结点数组 node ft[20001]; //深度优先搜索,last用于指示上一层节点编号,主要是防止死循环 int dfs(int last,i

fengyu0556的专栏 797

SAP Integration Suite 与 SAP Cloud Integration 的关系解析

SAP Cloud Integration是SAP Integration Suite套件的核心组件,专注于消息与流程集成。两者关系可概括为:Integration Suite是SAP BTP上的集成平台套件(iPaaS),而Cloud Integration是其中负责应用与B2B集成的关键能力。日常所说的"CPI"实际指代的是Integration Suite中的Cloud Integration功能。该套件还包含API管理、事件网格等其他集成能力,共同构成企业集成解决方案。理解这一层

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 594

POJ1655 Balancing Act 求树的重心

题目链接:http://poj.org/problem?id=1655 题目大意:树的重心:找到一个点作为新的树根,其所有的子树中最大子树的节点数最少,那么这个点就是这个树的重心。树的重心的意义在于,删去重心后,生成的多棵树尽可能平衡。 分析:一次搜索即可。DFS每一个点s,找出其各个子树的节点数,纪录最大值son[s],然后比较balance=max(son[s],n-son

AC_Gibson的专栏 583

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

poj1655 Balancing Act 求树的重心

http://poj.org/problem?id=1655 Balancing Act Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9072   Accepted: 3765 Description Consider a tree T with

597

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

poj1655 求树的重心

题目链接:http://poj.org/problem?id=1655题意:求树的重心。解法:对树进行dfs,记录对于某个节点它的子树大小son[u],在dfs的时候可以处理出来这个点的所有子树节点个数的最大值Max,而n-son[u]可以处理出它父节点延伸出去的节点数目,那么答案便可以找到了。#include<cstdio> #include<cstring> #include<algorithm

zt_1995的专栏 300

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

poj 1655 求树的重心

题目:点击打开链接 题意:有n-1条边链接n个点形成树形结构,问删除哪个点使得,形成的最大连通分量节点数最少,如有多解,输出字典序最小的 分析:和poj3107那题一样,求树的重心,dfs一次,从叶子到根转移,求出每个点的子树的最大连通分量,再和父节点所在一侧的连通分量比较,取最大的一个,再看是否比其他点形成的连通分量节点数大,就这样,把重心点放到一个数组中,排序后,取第一个。 #inc

01的世界 509

POJ 1655 +POJ 3107【求树的重心】

树的重心:树的重心也叫树的质心。找到一个点,其所有的子树中最大的子树节点数最少, 那么这个点就是这棵树的重心,删去重心后,生成的多棵树尽可能平衡。 换句话说,删除这个点后最大连通块(一定是树)的结点数最小。 eg: POJ 1655 http://poj.org/problem?id=1655 题目大意:给定一棵树,求树的重心的编号以及重心删除后得到的最大子树的节点个数size,

Jane_JXR的博客 689

求树的重心 poj 1655

题目链接:https://vjudge.net/problem/POJ-1655 这个就是找树的重心,树的重心就是树里面找一个点,使得以这个点为树根的所有的子树中最大的子树节点数最小。题目应该讲的比较清楚了,直接看代码吧: #include<iostream> #include<cstring> #include<algorithm> #inclu...

weixin_30765505的博客 122

【poj1655】【poj3107】【求树的重心】

先来说一下怎样来求树的直径:假设 s-t这条路径为树的直径,或者称为树上的最长路现有结论,从任意一点u出发搜到的最远的点一定是s、t中的一点,然后在从这个最远点开始搜,就可以搜到另一个最长路的端点,即用两遍广搜就可以找出树的最长路证明:1 设u为s-t路径上的一点,结论显然成立,否则设搜到的最远点为T则dis(u,T) >dis(u,s) 且 dis(u,T)>dis(u,t)

Vampire 862

poj3107 求树的重心(&& poj1655 同样求树的重心)

题目链接:http://poj.org/problem?id=3107 求树的重心,所谓树的重心就是:在无根树转换为有根树的过程中,去掉根节点之后,剩下的树的最大结点最小,该点即为重心。 剩下的数的 最大结点dp[i]=max(max(s[j]),n-s[i]) 其中的s[i]为以i为根节点的子树的结点总数,j为i的孩子。 //思路和代码都是比较好理解的 代码: #include&...

weixin_30830327的博客 78

poj 1655 求树的重心

/* 求树的重心,一个dfs即可 重心的意义,在对树进行分治的时候可以避免N^2的极端复杂度(从退化链的一端出发),保证NlogN的复杂度 tit=Max(tit,num[v]); tit=Max(tit,n-1-num[u]);其中num[u]代表u的子树的节点数(包括u) */ #include #include #include #define N 21000 #define inf

晴朗的博客 559

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

题目链接 树的重心: 若树上的一个节点满足其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心。 1.任选一个点为根,只要统计出每个点的子树大小,就能很快求出每个点子树节点的数量的最大值。 2.求每个点子树的大小同样只需要自底向上的更新信息。 3.记sz[u]为子树u节点的数量(包括 u 本身) 4.sz[u] = 1 + 所有子节点v的sz之和 #include <map> #include <set> #include <cmath> #include

qq_43555854的博客 257

poj 1655 Balancing Act(求树的重心)

poj 1655 Balancing Act(求树的重心) 分类: dp2013-07-11 14:39 106人阅读 评论(0) 收藏 举报 在一棵树中,去掉一个点,使得剩下的每一颗树的结点数最多的那颗树,结点数最少。 具体解法看注释. [html] view plaincopy /*       定

pi9nc的专栏 974

求树的重心 POJ 1655、POJ 3107 树形DP

树的重心:在树中删去重心后,剩下的子树的最大子树大小最小,则这个节点为重心POJ 1655:直接求树的重心 思路:递归每个节点的时候,记录一下这个节点所有子树的大小和,然后记录最大子树的大小,维护最小的最大子树大小和相应的节点即可 代码:#include <iostream> #include <cstdio> #include <cstring> #define sf scanf #defin

SolarDomo的博客 445

【poj1655】Balancing Act 求树的重心

DescriptionConsider a tree T with N (1 <= N <= 20,000) nodes numbered 1…N. Deleting any node from the tree yields a forest: a collection of one or more trees. Define the balance of a node to be the siz

DQS的树洞 845
上一篇: spfa dijkstra堆优化
下一篇: codeforces 918 C
flyzer
博客等级 码龄9年 27粉丝 146原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值