prim模板题
题目链接:http://acm.hrbeu.edu.cn/index.php?act=problem&id=1223
- #include <cstdio>
- #include <cmath>
- #include <algorithm>
- #include <iostream>
- #include <cstring>
- #include <queue>
- #include <vector>
- #define maxn 115
- using namespace std;
- const int INF = 0x3f3f3f;
- struct Point{
- double x,y;
- bool operator < (const Point & rh) const{
- return y < rh.y || (y == rh.y && x < rh.x);
- }
- }p[maxn];
- int n;
- double ans;
- double G[maxn][maxn];
- double calculate(int i,int j){
- double xx = p[j].x - p[i].x;
- double yy = p[j].y - p[i].y;
- return sqrt(xx*xx + yy*yy);
- }
- void prim(){
- bool vis[maxn];
- double lowdist[maxn];
- double mindist;
- memset(vis,,sizeof(vis));
- for(int i=;i<=n;i++) lowdist[i]=INF;
- int point;
- int s=;
- vis[s] =true;
- int num=;
- while(true){
- if(num == n) break;
- vis[s]=true;
- mindist = INF;
- for(int i=;i<=n;i++){
- if(!vis[i] && lowdist[i] > G[s][i]){
- lowdist[i] = G[s][i];
- }
- if(!vis[i] && mindist > lowdist[i]){
- mindist=lowdist[i];
- point = i;
- }
- }
- s = point;
- ans += mindist;
- num++;
- }
- return;
- }
- int main()
- {
- // if(freopen("input.txt","r",stdin)== NULL) {printf("Error\n"); exit(0);}
- while(scanf("%d",&n)== && n){
- for(int i=;i<=n;i++){
- scanf("%lf%lf",&p[i].x,&p[i].y);
- }
- for(int i=;i<=n;i++)
- for(int j=i+;j<=n;j++){
- G[i][j] = G[j][i] = calculate(i,j);
- }
- ans = ;
- //print();
- prim();
- printf("%.2lf\n",ans);
- }
- }
prim模板题的更多相关文章
- POJ 1258 Agri-Net 【Prime】模板题
题目链接>>> 题目大意: 给你N*N矩阵,表示N个村庄之间的距离.FJ要把N个村庄全都连接起来,求连接的最短距离(即求最小生成树).解析如下: #include <c ...
- POJ 1258:Agri-Net Prim最小生成树模板题
Agri-Net Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 45050 Accepted: 18479 Descri ...
- poj 1679 The Unique MST (次小生成树模板题)
Given a connected undirected graph, tell if its minimum spanning tree is unique. Definition 1 (Spann ...
- [AHOI 2009] 维护序列(线段树模板题)
1798: [Ahoi2009]Seq 维护序列seq Time Limit: 30 Sec Memory Limit: 64 MB Description 老师交给小可可一个维护数列的任务,现在小 ...
- HDU 2222 AC自动机模板题
题目: http://acm.hdu.edu.cn/showproblem.php?pid=2222 AC自动机模板题 我现在对AC自动机的理解还一般,就贴一下我参考学习的两篇博客的链接: http: ...
- POJ2774 & 后缀数组模板题
题意: 求两个字符串的LCP SOL: 模板题.连一起搞一搞就好了...主要是记录一下做(sha)题(bi)过程心(cao)得(dan)体(xin)会(qing) 后缀数组概念...还算是简单的,过程 ...
- HDU 1251 Trie树模板题
1.HDU 1251 统计难题 Trie树模板题,或者map 2.总结:用C++过了,G++就爆内存.. 题意:查找给定前缀的单词数量. #include<iostream> #incl ...
- HDU-3549 最大流模板题
1.HDU-3549 Flow Problem 2.链接:http://acm.hdu.edu.cn/showproblem.php?pid=3549 3.总结:模板题,参考了 http://ww ...
- HDU 4280:Island Transport(ISAP模板题)
http://acm.hdu.edu.cn/showproblem.php?pid=4280 题意:在最西边的点走到最东边的点最大容量. 思路:ISAP模板题,Dinic过不了. #include & ...
随机推荐
- hdoj 1251 字典树
代码: #include <stdio.h>#define MAX 26 typedef struct TrieNode{ int nCount; struct ...
- 【转】无废话WCF系列教程
转自:http://www.cnblogs.com/iamlilinfeng/category/415833.html 看后感:这系列的作者李林峰写得真的不错,通过它的例子,让我对WCF有了一 ...
- SGU 194. Reactor Cooling(无源汇有上下界的网络流)
时间限制:0.5s 空间限制:6M 题意: 显然就是求一个无源汇有上下界的网络流的可行流的问题 Solution: 没什么好说的,直接判定可行流,输出就好了 code /* 无汇源有上下界的网络流 * ...
- 【技术宅3】截取文件和url扩展名的N种方法
//截取文件扩展名的N种方法 //第1种 //strrchr() 函数查找字符在指定字符串中最后一次出现的位置,如果成功,则返回其后面的字符串 //返回带有点的扩展名 function get_e ...
- Android 应用层知识纲要
Java基础 * 面向对象 * Java集合框架 * 异常处理 * Java反射, Spring框架,通过反射实现 * 泛型, 静态变成语言 * 文件操作 Android基础 * Activity * ...
- arm-none-eabi-gcc install
Zephyr除了官方的编译工具,还有第三方工具 arm-none-eabi-gcc . This PPA is an alternative to toolchain released at http ...
- 欧拉计划(1~3)ps:以后看题一定要认真
那天的题挺简单的 下面来看下 No1 If we list all the natural numbers below 10 that are multiples of 3 or 5, we get ...
- Raspberry PI(树莓派)安装ZMAP
以前配置树莓派安装ZMAP一直没有装成功,今天又试了下,装成功了,记录下. Good Job. Zmap地址: https://zmap.io/documentation.html step1: gi ...
- java的"=="与"equals"
equals 方法是 java.lang.Object 类的方法. 有两种用法说明: (1)对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同. “==”比较两个变 ...
- DB2 replace into实现
最近进入到另一个项目, 数据库用的是DB2, 要实现MySQL中类似replace into的功能, 网上搜了下, 实现了一个类似功能的基础方法(PHP实现) public function repl ...