2016huasacm暑假集训训练三 F - Jungle Roads
题目链接:https://vjudge.net/contest/123674#problem/F
题意:在相通n个岛屿的所有桥都坏了,要重修,重修每一个桥所用的时间不同,求重修使每个岛屿都间接或直接与其他岛屿相同时所用的的最短时间 这就是一个简单的最小生成树的模板题,只要用了prime算法模板,但题是给出点的字母名,可以先转化为数字,在建立数组,就很容易写出来AC:
import java.io.BufferedInputStream;
import java.util.Scanner; public class Main {
final static int N = 1 << 20;
static int n, m, a[][] = new int[105][105], b[] = new int[105], sum; public static void main(String[] args) {
Scanner s = new Scanner(new BufferedInputStream(System.in));
int i, j, t, w;
String u, v;
while (s.hasNext()) {
n = s.nextInt();
if (n == 0)
break; for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++)
a[i][j] = N;
m = n - 1;
while (m-- > 0) {
u = s.next();
t = s.nextInt();
while (t-- > 0) {
v = s.next();
w = s.nextInt();
i = (u.charAt(0) - 'A') + 1;
j = (v.charAt(0) - 'A') + 1;
a[i][j] = w;
a[j][i] = w;
}
} sum = 0;
prim(1);
System.out.println(sum);
}
s.close();
} static void prim(int u) {
int i, j, min, v;
for (i = 1; i <= n; i++) {
b[i] = a[u][i]; }
sum = 0;
b[u] = -1;
for (i = 1; i <= n; i++) {
min = N;
v = -1;
for (j = 1; j <= n; j++) {
if (b[j] >0 && b[j] < min) {
v = j;
min = b[j];
}
}
if (v != -1) {
sum += b[v]; b[v] = -1;
for (j = 1; j <= n; j++) {
if (b[j] != -1 && a[v][j] < b[j])
b[j] = a[v][j];
}
}
} } }
2016huasacm暑假集训训练三 F - Jungle Roads的更多相关文章
- 2016huasacm暑假集训训练五 F - Monkey Banana Problem
题目链接:http://acm.hust.edu.cn/vjudge/contest/126708#problem/F 题意:求至上而下一条路径的所经过的值得和最大值,这题比赛时就出了 但当时看不懂题 ...
- 2016huasacm暑假集训训练三 G - 还是畅通工程
题目链接:http://acm.hust.edu.cn/vjudge/contest/123674#problem/G 这题和上一道题差不多,还更简单点,直接用prim算法就行,直接贴AC代码: im ...
- 2016huasacm暑假集训训练三 D - Invitation Cards
题目链接:http://acm.hust.edu.cn/vjudge/contest/123674#problem/D 题意:一张个向图,求从点1开始到其他各点的最短路权值和加上从其他各点到点1的最短 ...
- 2016huasacm暑假集训训练三 C - Til the Cows Come Home
题目链接:http://acm.hust.edu.cn/vjudge/contest/123674#problem/C N题目大意是有n个点,然后给出从a点到b点的距离,a和b是互相可以抵达的,则是无 ...
- 2016huasacm暑假集训训练三 B-Frogger
题目链接:http://acm.hust.edu.cn/vjudge/contest/123674#problem/B 题意:一只青蛙在湖中一颗石头上, 它想去有另一只青蛙的石头上,但是 湖里的水很脏 ...
- 2016huasacm暑假集训训练五 J - Max Sum
题目链接:http://acm.hust.edu.cn/vjudge/contest/126708#problem/J 题意:求一段子的连续最大和,只要每个数都大于0 那么就会一直增加,所以只要和0 ...
- 2016huasacm暑假集训训练四 DP_B
题目链接:http://acm.hust.edu.cn/vjudge/contest/125308#problem/M 题意:有N件物品和一个容量为V的背包.第i件物品的费用是体积c[i],价值是w[ ...
- 2016huasacm暑假集训训练四 数论_A
题目链接:http://acm.hust.edu.cn/vjudge/contest/125308#problem/F 题意:狼捉兔子,兔子躲在n个洞中一个,这n个洞围成一个圈,狼会从第0号洞开始,搜 ...
- 2016huasacm暑假集训训练四 递推_B
题目链接:http://acm.hust.edu.cn/vjudge/contest/125308#problem/B 题意:给定n个三角形,问最多可以把区域化成多少个部分,这是一个一维空间 一定会 ...
随机推荐
- sublime 编译运行C程序
{ "cmd": ["gcc", "${file}", "-o","${file_path}/${file_b ...
- java基础 集合 ArrayList 增删改除
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...
- rsa 签名 加密解密
A->B 签名 ==========================A方+A方的私钥 => B收到后 用A方的公钥 验证签名 ==========================A-> ...
- 【原创】js实现一个可随意拖拽排序的菜单导航栏
1.想做这个效果的原因主要是用在UC上看新闻发现他们的导航菜单很有趣.无聊的时候在哪划着玩了很久.所以就干脆自己写一个.原效果如下 2.整体效果如下,在已推荐和未添加里面每个小方块可以触摸移动位置互换 ...
- 实现tableview的下拉刷新
实现tableview的下拉刷新 推荐第三方下拉刷新代码http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6 ...
- Spring+SpringMvc+Mybatis框架集成搭建教程三(框架整合测试程序开发)
框架整合测试程序开发 (1).在mysql数据库中创建t_user表,sql语句如下 CREATE TABLE `t_user` ( `id` bigint(20) NOT NULL AUTO_INC ...
- 自定义RatingBar,不同分辨率屏幕下图片拉伸或者显示不完整问题解决
1.需要两张评分图片ic_rating_highlight.png ic_rating_normal_white.png(宽高都是52px,且有内边距) 将这两张图片添加到各分辨率文件夹下 开发过 ...
- windows下修复Linux引导 and linux下几个常用软件
在这里,我选择的是deepinLinux,不用说,高端大气上档次! Linux下引导修复 在win7上安装好了Linux,一不小心Linux系统启动不了 (一不小心的过程,想使用root登录图像界面, ...
- Git Push 避免用户名和密码方法
参考这里: http://www.cnblogs.com/ballwql/p/3462104.html 亲测第一种方法有效
- Guava学习笔记(1):Optional优雅的使用null
转自:http://www.cnblogs.com/peida/archive/2013/06/14/Guava_Optional.html 参考:[Google Guava] 1.1-使用和避免nu ...