【GZOI 1032G】腐败分子看直播(树)

题目描述

随着里约奥运的开幕,在广州二高集训的腐败分子们悄悄有乐子了,他们常常围聚在某个人的电脑旁看奥运直播。但是,腐败分子的堕落性质决定了他们都不怎么想移动自己的位置,于是在谁的电脑上看直播成了腐败分子争吵的问题。
当然,腐败分子都是极其聪明的,他们马上把问题抽象为一个二叉树结构(如下图,其中圈中的数字表示腐败分子移动的艰难值,圈边上数字表示腐败分子的结点编号),他们把这个问题转换成在树上找一个点,使得所有人的移动艰难值最小。就下图而言,若在1处看直播,则各腐败分子的移动艰难值和=4+12+2*20+2*40=136;若在3处看直播,则移动艰难值和=4*2+13+20+40=81。(注意,相邻结点之间的距离为1。)显然,在3处看直播大家会更高兴。
 
现在,腐败分子们想知道他们最小的移动艰难值之和是多少,但是腐败分子的堕落性质决定了他们会把这个问题交给你解决,如果你解决不出来,他们就向Teacher Chen举报你腐败。

输入

输入第一行一个整数n,表示树的结点数(n<=100)。
接下来的n行每行描述了一个结点的状况,包含三个整数,整数之间用空格(一个或多个)分隔,其中:第一个数表示移动艰难值;第二个数为左链接,为0表示无链接;第三个数为右链接,为0表示无链接。

输出

输出一个整数,表示最小的移动艰难值之和。
把树看成无根树,每一个点轮流做树根,求出每个点x深度的和的最小值便可。
 1 #include <cstdio>
 2 #include <vector>
 3 
 4 int n,w[101],l,r,cost,ans(0x7fffffff);
 5 std::vector<int> t[101];
 6 #define min(x,y) (x<y?x:y)
 7 
 8 void dfs(int x,int fa,int dep){
 9     cost+=w[x]*dep;
10     for(int i=0;i<t[x].size();++i){
11         int v=t[x][i];
12         if((v==fa)||(v==0))continue;
13         dfs(v,x,dep+1);
14     }
15 }
16 
17 int main(void){
18     scanf("%d",&n);
19     for(int i=1;i<=n;++i){
20         scanf("%d%d%d",&w[i],&l,&r);
21         t[i].push_back(l);
22         t[i].push_back(r);
23         t[l].push_back(i);
24         t[r].push_back(i);
25     }
26     for(int i=1;i<=n;++i){
27         cost=0;
28         dfs(i,0,0);
29         ans=min(ans,cost);
30     }
31     printf("%d",ans);
32 }

 

转载于:https://www.cnblogs.com/gzh01/p/9665217.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
系统根据B/S,即所谓的电脑浏览器/网络服务器方式,运用Java技术性,挑选MySQL作为后台系统。系统主要包含对客服聊天管理、字典表管理、公告信息管理、金融工具管理、金融工具收藏管理、金融工具银行卡管理、借款管理、理财产品管理、理财产品收藏管理、理财产品银行卡管理、理财银行卡信息管理、银行卡管理、存款管理、银行卡记录管理、取款管理、转账管理、用户管理、员工管理等功能模块。 文中重点介绍了银行管理的专业技术发展背景和发展状况,随后遵照软件传统式研发流程,最先挑选适用思维和语言软件开发平台,依据需求分析报告模块和设计数据库结构,再根据系统功能模块的设计制作系统功能模块图、流程表和E-R图。随后设计架构以及编写代码,并实现系统能模块。最终基本完成系统检测和功能测试。结果显示,该系统能够实现所需要的作用,工作状态没有明显缺陷。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。进入银行卡列表,管理员可以进行查看列表、模糊搜索以及相关维护等操作。用户进入系统可以查看公告和模糊搜索公告信息、也可以进行公告维护操作。理财产品管理页面,管理员可以进行查看列表、模糊搜索以及相关维护等操作。产品类型管理页面,此页面提供给管理员的功能有:新增产品类型,修改产品类型,删除产品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值