博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
luogu P1359会议
阅读量:6658 次
发布时间:2019-06-25

本文共 1983 字,大约阅读时间需要 6 分钟。

1 //以一号节点为根节点,求出所有节点到根结点的距离,以及所有点的子节点的个数  2 //然后计算根据已知信息计算所有节点到当前结点的距离  3 //然后扫描n个点,O(n)求解  4 #include
5 using namespace std; 6 const int maxn = 50086; 7 struct node { 8 int y, net; 9 }e[maxn << 1];10 int f[maxn], h[maxn];//h表示以当前节点的根结点的子节点的个数,f表示所有子节点到当前节点的距离和 11 int n;12 int lin[maxn], len = 0;13 int id;14 15 inline int read() {16 int x = 0, y = 1;17 char ch = getchar();18 while(!isdigit(ch)) {19 if(ch == '-') y = -1;20 ch = getchar();21 }22 while(isdigit(ch)) {23 x = (x << 1) + (x << 3) + ch - '0';24 ch = getchar();25 }26 return x * y;27 }28 29 inline void insert(int xx, int yy) {30 e[++len].y = yy;31 e[len].net = lin[xx];32 lin[xx] = len;33 }34 35 int son_num(int x, int fa) {36 for(int i = lin[x]; i; i = e[i].net) {37 int to = e[i].y;38 if(to != fa) h[x] += son_num(to, x) + 1;39 } 40 return h[x];41 }42 43 void everyson_to_one_dis(int x, int fa, int z) {44 f[1] += z;45 for(int i = lin[x]; i; i = e[i].net) {46 int to = e[i].y;47 if(to != fa) everyson_to_one_dis(to, x, z + 1);48 } 49 }50 51 void everyone_to_x_dis(int x, int fa) {52 f[x] = f[fa] - (h[x] + 1) + (n - h[x] - 1);53 for(int i = lin[x]; i; i = e[i].net) {54 int to = e[i].y;55 if(to != fa) everyone_to_x_dis(to, x);56 }57 }58 59 int main() {60 memset(lin, 0, sizeof(lin));61 n = read();62 for(int i = 1; i < n; ++i) {63 int x, y;64 x = read(), y = read();65 insert(x, y);66 insert(y, x);67 }68 son_num(1, 0);69 for(int i = lin[1]; i; i = e[i].net) 70 everyson_to_one_dis(e[i].y, 1, 1);71 for(int i = lin[1]; i; i = e[i].net)72 everyone_to_x_dis(e[i].y, 1);73 id = 1;74 for(int i = 2; i <= n; ++i)75 if(f[id] > f[i]) id = i;76 cout << id << ' ' << f[id] << '\n';77 return 0;78 }

 

转载于:https://www.cnblogs.com/ywjblog/p/9482572.html

你可能感兴趣的文章
莎莎的简历
查看>>
快速排序(递归与非递归形式)
查看>>
洛谷金秋夏令营模拟赛 第2场 T11737 时之终末
查看>>
汕头市队赛 SRM10 T1模拟只会猜题意
查看>>
noi 4978 宠物小精灵之收服
查看>>
55.动态加载Html
查看>>
9.如何判定常量是否被定义
查看>>
有关UIScrollView 和 UIPageControll 结合使用
查看>>
js中 let 与 var 的区别
查看>>
你知道Java的四种引用类型吗
查看>>
三种数据库连接池的配置及使用(For JDBC)
查看>>
Intellij IDEA 常用的插件 建议全装
查看>>
大前端的自动化工厂(5)—— 基于Karma+Mocha+Chai的单元测试和接口测试
查看>>
MSP项目群管理介绍
查看>>
cdq分治入门学习 cogs 1752 Mokia nwerc 2015-2016 G 二维偏序
查看>>
OCCI开发环境的安装和配置
查看>>
C语言初级进阶2
查看>>
一种坠落的无知感---祭奠、致敬、反思三年生涯之曾经以为拥有全世界(二)...
查看>>
前端常用的正则表达式
查看>>
2018软工实践第一次作业
查看>>