医院设置x
设有一棵二叉树,如下图
其中,圈中数字表示结点居民的人口.圈边上数字表示结点编号,.现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻结点之间 的距离为1.如上图中,若医院建在:
1处:则距离之和=4+12+2*20+2*40=136
3处:则距离之和=4*2+13+20+40=81
…….
第一行一个整数n,表示树的结点数。(n<=100)
接下来的n行每行描述了一个结点的状况,包含三个整数,整数之间用空格(一个或多个)分隔,其中:第一个数为居民人口数;第二个数为左链接,为0表示表链接;第三个数为右链接。
一个整数,表示最小距离和。
5
13 2 3
4 0 0
12 4 5
20 0 0
40 0 0
81
无
#include<iostream>
#include<cstring> using namespace std; /*
样例
5
13 2 3
4 0 0
12 4 5
20 0 0
40 0 0
*/ int n,i,j,k,x,y; int a[],g[][]; /*
a数组储存第几个结点编号,
g数组储存其所对的左右孩子编号,
输入时,
若都为0,则说明无左右孩子(一个都没有),
若左为0,则说明左边无孩子,右同;
*/ int main() {
long long t,minn=;
cin>>n;
for(i=; i<=n; i++) {
cin>>a[i]>>x>>y;
if (x!=) g[i][x]=g[x][i]=;//左不为0,说明左边有孩子,做标记
if (y!=) g[i][y]=g[y][i]=;//右不为0,说明右边有孩子,做标记
}
for(i=; i<=n; i++)
for(j=; j<=n; j++)
if(g[i][j]!=) g[i][j]=;//这些都无孩子
for(k=; k<=n; k++)
for(i=; i<=n; i++)
for(j=; j<=n; j++)
if((i!=k)&&(i!=j)&&(j!=k)&&(g[i][k]+g[k][j]<g[i][j]))
g[i][j]=g[i][k]+g[k][j];
for(i=; i<=n; i++) {
for(j=; j<=n; j++)
if(i!=j) t=t+g[i][j]*a[j];
if(t<minn) minn=t;//minn为最小
t=;//清0,便于下一次继续统计是否为最小
}
cout<<minn;
}
医院设置x的更多相关文章
- codevs 2577 医院设置
2577 医院设置 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题目描述 Description 设有一棵二叉树,如下图 其中,圈中数字表示结点居民的人口.圈边 ...
- P1364 医院设置 (补锅,memset初始化较大值不可用0x7fffffff )
P1364 医院设置 题解 弗洛伊德水过 注意初始化一个大数 0x3f 可以,0x5f 好像也可以,但是0x7fffffff 我是真的炸了,初始化为-1 (后面补锅有详细解释) 代码 #include ...
- 【6.10校内test】T2 医院设置
医院设置[题目链接] 感觉我超废 我是一个连floyd都不会写了的灵魂OI选手qwq(考场上写了半天spfa然后写炸了(微笑)) floyd的暴力: 1.先建树:用邻接矩阵存.存之前记得先初始化为IN ...
- 【模板】树的重心 洛谷P1364 医院设置
P1364 医院设置 题目描述 设有一棵二叉树,如图: 其中,圈中的数字表示结点中居民的人口.圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接 ...
- 洛谷P1364 医院设置(Floyd)
题目描述 设有一棵二叉树,如图: 其中,圈中的数字表示结点中居民的人口.圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接点之间的距离为l.如上 ...
- [Swust OJ 412]--医院设置(floyd算法)
题目链接:http://acm.swust.edu.cn/problem/412/ Time limit(ms): 1000 Memory limit(kb): 65535 Description ...
- P1364 医院设置
题目描述 设有一棵二叉树,如图: 其中,圈中的数字表示结点中居民的人口.圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接点之间的距离为l.如上 ...
- [LUOGU] 1364 医院设置
设有一棵二叉树,如图: [我是图] 其中,圈中的数字表示结点中居民的人口.圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接点之间的距离为1.如 ...
- P1364 医院设置 洛谷
https://www.luogu.org/problem/show?pid=1364 题目描述 设有一棵二叉树,如图: 其中,圈中的数字表示结点中居民的人口.圈边上数字表示结点编号,现在要求在某个结 ...
随机推荐
- stuff拼接字符串
stuff stuff(param1,startIndex,length,param2) 说明:将param1中自startIndex(SQL中都是从1开始,而非0)起,删除length个字符,然后用 ...
- Spark 源码和应用开发环境的构建
引言 Spark 现在无疑是大数据领域最热门的技术之一,读者很容易搜索到介绍如何应用 Spark 技术的文章,但是作为开发人员,在了解了应用的概念之后,更习惯的是打开开发环境,开发一些应用来更深入的学 ...
- JavaWeb【七、JSP状态管理】
http协议无状态性 当提交请求,服务器返回响应.但当同一用户同一浏览器再次提交请求,服务器并不知道与刚才的请求是同一用户浏览器发起. 保存用户状态的两大机制 Session-保存在服务器端 Cook ...
- go语言json转map
package util import ( "encoding/json" "fmt" ) // json转map函数,通用 func JSONToMap(st ...
- 终端复用工具-tmux
目录 终端复用工具--Tmux 一.为什么要用Tmux? 二.tmux是什么? 三.Tmux基本概念 四.Tmux使用规则 1.安装Tmux 2.基本使用 3.自定义配置文件 五.补充 1.tmux ...
- jquery 取指定class下的input checkbox选中的值
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- OWASP Hakcing Lab在线漏洞环境
OWASP Hakcing Lab在线漏洞环境 OWASP hakcing-lab 是一个提供免费的远程安全(Web)挑战和 OWASP TOP 10,OWASP WebGoat,OWASP Ha ...
- 《python解释器源码剖析》第4章--python中的list对象
4.0 序 python中的list对象,底层对应的则是PyListObject.如果你熟悉C++,那么会很容易和C++中的list联系起来.但实际上,这个C++中的list大相径庭,反而和STL中的 ...
- (十一)设置关闭多核cpu的核
echo 0 > /sys/devices/system/cpu/cpu3/online 查看当前有哪些核心 cat /sys/devices/system/cpu/online
- VToRay C-S config
Server config: { "inbounds": [{ "port": 20000, //Server Listening Port "pro ...