刚开始只是给g[i][j]赋值,总是出错,应该当作无向图g[i][j] = g[j][i]

import java.io.IOException;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.util.Scanner;
import java.util.Arrays;
import java.util.Formatter;class Main
{public static final boolean DEBUG = false;public static void main(String[] args) throws IOException{Scanner cin;int n;if (DEBUG) {cin = new Scanner(new FileReader("d:\\OJ\\uva_in.txt"));} else {cin = new Scanner(new InputStreamReader(System.in));}while (cin.hasNext()) {n = cin.nextInt();if (n == 0) break;double[][] g = new double[n][n];double[] x = new double[n];double[] y = new double[n];for (int i = 0; i < n; i++) {x[i] = cin.nextDouble();y[i] = cin.nextDouble();}for (int i = 0; i < n; i++) {Arrays.fill(g[i], Double.MAX_VALUE);}for (int i = 0; i < n; i++) {for (int j = i + 1; j < n; j++) {g[i][j] = g[j][i] = Math.sqrt(Math.pow(x[i] - x[j], 2) + Math.pow(y[i] - y[j], 2));}}double[] dis = new double[n];boolean[] vis = new boolean[n];vis[0] = true;for (int i = 1; i < n; i++) {dis[i] = g[0][i];}double ans = 0;for (int i = 1; i < n; i++) {double min = Double.MAX_VALUE;int k = -1;for (int j = 0; j < n; j++) {if (!vis[j] && dis[j] < min) {min = dis[j];k = j;}}if (k != -1) {//System.out.println("k:" + k + " min:" + min);vis[k] = true;ans += min;for (int j = 0; j < n; j++) {if (!vis[j] && g[k][j] != Double.MAX_VALUE && g[k][j] < dis[j]) {dis[j] =  g[k][j];}}}}Formatter fmt = new Formatter();fmt.format("%.2f", ans);System.out.println(fmt);}}
} 

题目1144:Freckles相关推荐

  1. Freckles - 九度 OJ 1144

    Freckles - 九度 OJ 1144 题目 时间限制:1 秒 内存限制:128 兆 特殊判题:否 题目描述: In an episode of the Dick Van Dyke show, l ...

  2. sicily题目分类

    sicily题目分类 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. ...

  3. [sicily]部分题目分类

    sicily题目分类 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. ...

  4. Sicily 题目分类

    依照自己水平挑着做→ →~~ 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 ...

  5. 编程题目分类(剪辑)

    1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. 模拟 12. 算术与代 ...

  6. POJ 1144 Network(无向图连通分量求割点)

    题目地址:POJ 1144 求割点.推断一个点是否是割点有两种推断情况: 假设u为割点,当且仅当满足以下的1条 1.假设u为树根,那么u必须有多于1棵子树 2.假设u不为树根.那么(u,v)为树枝边. ...

  7. PAT甲级1144 The Missing Number:[C++题解]哈希表

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 把所有的数放进一个hash表,然后从1开始遍历,看每个数是不是在hash表中,输出第一个不在表中的元素. ac代码 #include ...

  8. (转)刘汝佳书上出现的一些题目

    推荐一些题目,希望对参与ICPC竞赛的同学有所帮助. POJ上一些题目在 http://162.105.81.202/course/problemSolving/   可以找到解题报告.        ...

  9. [转] HDU 题目分类

    转载来自:http://www.cppblog.com/acronix/archive/2010/09/24/127536.aspx 分类一: 基础题:1000.1001.1004.1005.1008 ...

最新文章

  1. PHP制作回合制游戏,回合制游戏脚本制作采集思路
  2. C#比较dynamic和Dictionary性能
  3. fluentd主从配置
  4. ONVIF Device Manager修改设备密码
  5. xml配置javaBean的IOC实现示例
  6. 基于k8s的测试执行工具:TestKube
  7. linux内核主频,Linux 内核时钟频率对系统性能影响
  8. Increasing the OpLog Size in MongoDB(don't need full resync)
  9. java自带数据结构(set/list/stack/queue)
  10. 纳加服务器授权文件,VJSAC(纳加VJMS3服务管理终端)
  11. navicat中看sql执行计划
  12. matlab饼状图的编程方法,matlab饼状图
  13. TiDB v5.3.0->v5.4.2->v6.1.0升级、TiDB/PD/TiKV/TiFlash扩缩容、TiSpark部署指北
  14. 【MySQL】5.7新特性之七
  15. C++的std::packaged_task
  16. 三炮的三舅走了,才发觉日子真的不经念叨呀!
  17. 干货:esp32彩屏自制太空人主题透明手表!
  18. Figma#5:文字
  19. iptables目标TTL
  20. spring boot 定时器

热门文章

  1. python视频教学视频哪个好-Python入门视频看哪个好?适合初学者的教学视频推荐...
  2. python笔记基础-python基础学习笔记(一)
  3. python 能干嘛-python能干嘛
  4. 编程软件python是什么-现在编程软件有哪些?常用是哪一种?
  5. 用python画漂亮图片-使用 Python/matplotlib 画出漂亮的论文插图
  6. python程序设计报告-20192116 实验一《Python程序设计》实验报告
  7. 小学生python入门-周边 | 小学生都开始学Python了,你还在等什么?
  8. 安装完python后怎么使用-安装anaconda后该怎么使用
  9. 学好python工资一般多少钱-Python工资一般是多少 看完吓你一跳
  10. python变量类型-python变量的数据类型有哪些?