题目链接:http://acm.swust.edu.cn/problem/412/

Time limit(ms): 1000        Memory limit(kb): 65535
 
Description
设有一棵二叉树,如图: 

其中,圈中的数字表示结点中居民的人口。圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相信接点之间的距离为1。如上图中,若医院建在: 
1处,则距离和=4+12+2*20+2*40=136 
3处,则距离和=4*2+13+20+40=81 
……

 
Input
第一行一个整数n,表示树的结点数。(n≤100) 
接下来的n行每行描述了一个结点的状况,包含三个整数,整数之间用空格(一个或多个)分隔,其中:第一个数为居民人口数;第二个数为左链接,为0表示无链接;第三个数为右链接。

 
Output
一个整数,表示最小距离和。

 
 
Sample Input
5
13 2 3
4 0 0
12 4 5
20 0 0
40 0 0
Sample Output
81
 
解题思路:传说中只有5行的floyd算法(链接)带进去瞎搞就可以了·--,恩~~看题中的样例数据,下标从1开始的(被坑了)~~~
 
代码如下:
 #include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
#define inf 0x3f3f3f int n, ptr[], mpt[][], L, R;
void Floyd(){
for (int k = ; k <= n; k++){
for (int i = ; i <= n; i++){
for (int j = ; j <= n; j++)
mpt[i][j] = min(mpt[i][j], mpt[i][k] + mpt[k][j]);
}
}
}
int main(){
int i, j, sum, tmp;
while (cin >> n){
sum = inf;
memset(mpt, inf, sizeof(mpt));
for (i = ; i <= n; i++){
cin >> ptr[i] >> L >> R;
mpt[L][i] = mpt[i][L] = mpt[R][i] = mpt[i][R] = ;
}
Floyd();
for (i = ; i <= n; i++){
tmp = ;
for (j = ; j <= n; j++) {
if (i != j)
tmp += mpt[i][j] * ptr[j];
}
sum = min(sum, tmp);
}
cout << sum << endl;
}
return ;
}

最新文章

  1. linux history命令显示时间
  2. How do I enable log4net internal debugging?
  3. 时间改成24小时制 和pc mobile链接自动转化
  4. QT国际化 一 (lupdate/linguits/lrelease)
  5. 使用 IMQ+HTB+iptable 统一流量控制心得
  6. iOS开发编译报错、常见问题(实时更新)
  7. 一机双mysql的安装和启动注意事项目
  8. Matlab与C/C++联合编程之Matlab以MEX方式调用C/C++代码(四)
  9. 使用IDENTITY列属性和Sequence对象
  10. php异或加密解密算法的实现
  11. hdu 4893 Wow! Such Sequence!
  12. SVN解锁失败的解决办法
  13. HTML day01基础总结
  14. Ocelot中文文档-架构图
  15. log4net使用封装,无缝切换 dotnet 和 dotnetcore
  16. 反射与jvm
  17. [Linux] awk基础编程
  18. 第七节:利用CancellationTokenSource实现任务取消和利用CancellationToken类检测取消异常。
  19. validation-api各注解的用法
  20. AFNetworking Delete请求,报参数为空的错误

热门文章

  1. Linux内核和驱动编译常见问题
  2. C# 基础中有关术语理解
  3. 如何使用Palette提取Bitmap的颜色
  4. DateTimePicker——开源的Android日历类库
  5. 害人的VS2008,manifest导致“应用程序配置不正确,应用程序未能启动”
  6. HDU 5828 Rikka with Sequence(线段树)
  7. 记userscripts.org
  8. 【HDU】病毒侵袭持续中(AC自己主动机+map)
  9. raphael入门到精通---属性和事件篇
  10. js获取智能机浏览器版本信息