[Swust OJ 412]--医院设置(floyd算法)
2015-06-26 16:06
465 查看
题目链接:http://acm.swust.edu.cn/problem/412/
Time limit(ms): 1000 Memory limit(kb): 65535
Description
设有一棵二叉树,如图:
View Code
Time limit(ms): 1000 Memory limit(kb): 65535
Description
设有一棵二叉树,如图:
#include <iostream> #include <algorithm> #include <cstring> using namespace std; #define inf 0x3f3f3f int n, ptr[101], mpt[101][101], L, R; void Floyd(){ for (int k = 1; k <= n; k++){ for (int i = 1; i <= n; i++){ for (int j = 1; 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 = 1; i <= n; i++){ cin >> ptr[i] >> L >> R; mpt[L][i] = mpt[i][L] = mpt[R][i] = mpt[i][R] = 1; } Floyd(); for (i = 1; i <= n; i++){ tmp = 0; for (j = 1; j <= n; j++) { if (i != j) tmp += mpt[i][j] * ptr[j]; } sum = min(sum, tmp); } cout << sum << endl; } return 0; }
View Code
相关文章推荐
- JAVA中是先有对象还是先有类?
- 结构体嵌套
- EGit使用——轻松解决无法pull,无法提交到master分支等问题
- fuser命令--谁打开了我的文件
- Lucene.Net 2.3.1开发介绍 —— 二、分词(四)
- Lucene.Net 2.3.1开发介绍 —— 二、分词(三)
- Eclipse布局文件添加两个TextView,为什么运行后置显示一个
- Postmortem报告
- 获取服务器物理路径
- Android.mk添加第三方jar包
- Divide Two Integers
- lsof命令--列出当前系统打开文件
- ajax点击按钮出现提交框
- J.U.C体系
- AWS中RDS修改mysql的编码
- 绕任意向量旋转分解到坐标系旋转
- MongoDB Data Models 数据结构设计
- UEditor 1.4.2+版本文件图片上传路径配置
- LLDB命令
- poj2836