题目1144:Freckles
刚开始只是给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相关推荐
- Freckles - 九度 OJ 1144
Freckles - 九度 OJ 1144 题目 时间限制:1 秒 内存限制:128 兆 特殊判题:否 题目描述: In an episode of the Dick Van Dyke show, l ...
- sicily题目分类
sicily题目分类 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. ...
- [sicily]部分题目分类
sicily题目分类 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. ...
- Sicily 题目分类
依照自己水平挑着做→ →~~ 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 ...
- 编程题目分类(剪辑)
1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. 模拟 12. 算术与代 ...
- POJ 1144 Network(无向图连通分量求割点)
题目地址:POJ 1144 求割点.推断一个点是否是割点有两种推断情况: 假设u为割点,当且仅当满足以下的1条 1.假设u为树根,那么u必须有多于1棵子树 2.假设u不为树根.那么(u,v)为树枝边. ...
- PAT甲级1144 The Missing Number:[C++题解]哈希表
文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 把所有的数放进一个hash表,然后从1开始遍历,看每个数是不是在hash表中,输出第一个不在表中的元素. ac代码 #include ...
- (转)刘汝佳书上出现的一些题目
推荐一些题目,希望对参与ICPC竞赛的同学有所帮助. POJ上一些题目在 http://162.105.81.202/course/problemSolving/ 可以找到解题报告. ...
- [转] HDU 题目分类
转载来自:http://www.cppblog.com/acronix/archive/2010/09/24/127536.aspx 分类一: 基础题:1000.1001.1004.1005.1008 ...
最新文章
- PHP制作回合制游戏,回合制游戏脚本制作采集思路
- C#比较dynamic和Dictionary性能
- fluentd主从配置
- ONVIF Device Manager修改设备密码
- xml配置javaBean的IOC实现示例
- 基于k8s的测试执行工具:TestKube
- linux内核主频,Linux 内核时钟频率对系统性能影响
- Increasing the OpLog Size in MongoDB(don't need full resync)
- java自带数据结构(set/list/stack/queue)
- 纳加服务器授权文件,VJSAC(纳加VJMS3服务管理终端)
- navicat中看sql执行计划
- matlab饼状图的编程方法,matlab饼状图
- TiDB v5.3.0->v5.4.2->v6.1.0升级、TiDB/PD/TiKV/TiFlash扩缩容、TiSpark部署指北
- 【MySQL】5.7新特性之七
- C++的std::packaged_task
- 三炮的三舅走了,才发觉日子真的不经念叨呀!
- 干货:esp32彩屏自制太空人主题透明手表!
- Figma#5:文字
- iptables目标TTL
- spring boot 定时器
热门文章
- python视频教学视频哪个好-Python入门视频看哪个好?适合初学者的教学视频推荐...
- python笔记基础-python基础学习笔记(一)
- python 能干嘛-python能干嘛
- 编程软件python是什么-现在编程软件有哪些?常用是哪一种?
- 用python画漂亮图片-使用 Python/matplotlib 画出漂亮的论文插图
- python程序设计报告-20192116 实验一《Python程序设计》实验报告
- 小学生python入门-周边 | 小学生都开始学Python了,你还在等什么?
- 安装完python后怎么使用-安装anaconda后该怎么使用
- 学好python工资一般多少钱-Python工资一般是多少 看完吓你一跳
- python变量类型-python变量的数据类型有哪些?