Highways
poj1751:http://poj.org/problem?id=1751
题意:给你n个城市,每个城市的坐标给你,然后为了是每个城市都连通,需要在已经建了一些街道额基础上,再次建一些街道使其连通,求使得所建街道最短的那些边。
题解:直接求一棵生成树,把已经建好的边的边权设置为0,用prim走一遍。
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
#define INF 100000000.0
using namespace std;
struct Node{
int x;
int y;
}node[];//储存村庄
double g[][];
double lowcost[];
bool flag;
double juli(Node a,Node b){//求距离 ,注意数据类型
double xx=pow(((double)a.x-b.x),);
double yy=pow(((double)a.y-b.y),);
return sqrt(xx+yy);
}
int n,m,nearvex[],u,v1;
void prim(int v0){
flag=false;//标记是否需要建边
for(int i=;i<=n;i++){
lowcost[i]=g[v0][i];
nearvex[i]=v0;
}
nearvex[v0]=-;
for(int i=;i<n;i++){
double min=INF;//注意这里的数据类型,不能换成int
int v=-;
for(int j=;j<=n;j++){
if(nearvex[j]!=-&&lowcost[j]<min){
v=j;
min=lowcost[j];
}
}
if(v!=-){
if(lowcost[v]!=){
flag=true;
printf("%d %d\n",nearvex[v],v);//找到就输出
}
nearvex[v]=-;
for(int k=;k<=n;k++){
if(nearvex[k]!=-&&g[v][k]<lowcost[k]){
nearvex[k]=v;
lowcost[k]=g[v][k];
}
}
}
}
if(!flag)printf("\n");//没有要建的边,就输出空行
}
int main(){
while(~scanf("%d",&n)){
for(int i=;i<=n;i++)//存点
scanf("%d%d",&node[i].x,&node[i].y);
for(int i=;i<=n;i++)//建图
for(int j=i+;j<=n;j++){
g[i][j]=g[j][i]=juli(node[i],node[j]);
}
for(int i=;i<=n;i++)//初始化
for(int j=;j<=n;j++){
if(i==j)g[i][j]=;
else if(g[i][j]==)g[i][j]=INF;
}
scanf("%d",&m);
for(int i=;i<=m;i++){//处理已经不需要建的边
scanf("%d%d",&u,&v1);
g[u][v1]=g[v1][u]=;
}
prim(); }
}
Highways的更多相关文章
- H:Highways
总时间限制: 1000ms 内存限制: 65536kB描述The island nation of Flatopia is perfectly flat. Unfortunately, Flatopi ...
- Highways(prim & MST)
Highways Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 23421 Accepted: 10826 Descri ...
- poj2485 Highways
Description The island nation of Flatopia is perfectly flat. Unfortunately, Flatopia has no public h ...
- poj 2485 Highways 最小生成树
点击打开链接 Highways Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 19004 Accepted: 8815 ...
- poj 2485 Highways
题目连接 http://poj.org/problem?id=2485 Highways Description The island nation of Flatopia is perfectly ...
- POJ 1751 Highways (最小生成树)
Highways Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Submit Sta ...
- POJ 1751 Highways (最小生成树)
Highways 题目链接: http://acm.hust.edu.cn/vjudge/contest/124434#problem/G Description The island nation ...
- UVa 1393 (容斥原理、GCD) Highways
题意: 给出一个n行m列的点阵,求共有多少条非水平非竖直线至少经过其中两点. 分析: 首先说紫书上的思路,编程较简单且容易理解.由于对称性,所以只统计“\”这种线型的,最后乘2即是答案. 枚举斜线包围 ...
- (poj) 1751 Highways
Description The island nation of Flatopia is perfectly flat. Unfortunately, Flatopia has a very poor ...
- Highways poj 2485
Description The island nation of Flatopia is perfectly flat. Unfortunately, Flatopia has no public h ...
随机推荐
- UISegmentedControl UISlider
self.view.backgroundColor = [UIColor whiteColor]; //UISegmentedControl 是iOS中的分段控件,事实上是多个button的组合视图, ...
- 坚持c++,真正掌握c++(2)
在c++中对c中的输入输出进行了扩展,採用了面向对象的设计方法设计了c++中的输入输出(IO).输入输出依照操作的对象分类可分为:1. 标准IO(对计算机的键盘或者显示器进行读写操作).2. 文件IO ...
- 构造Nginx避免直接使用IP通路Webserver
他看上去非常Nginx构造,似乎忽略了ip直接访问Web问题,从理论上讲,这是不利于SEO优化,因此,我们希望能够避免直接使用IP访问该网站,但域名.详细介绍了如何做到这一点,看看下面的. 在官方文件 ...
- jboss 7 as1 日志配置
原文地址:https://docs.jboss.org/author/display/AS71/Logging+Configuration Overview The overall server lo ...
- iOS-C文件添加到iOS项目中,运行报错
iOS-C文件添加到iOS项目中,运行报错 问题: 往项目中添加一个空的c文件, 编译运行; 出现2,30个编译错误. 原因: 由于在项目中添加了Pch文件,在文件中所有代码还没有开始运行之前, pc ...
- table转list
DataTable数据集转换为List非泛型以及泛型方式 前言 DataTable是断开式的数据集合,所以一旦从数据库获取,就会在内存中创建一个数据的副本,以便使用.由于在实际项目中,经常会将 Dat ...
- C# 内存管理优化畅想(一)---- 大对象堆(LOH)的压缩
我们都知道,.net的GC是不会压缩大对象堆的,因为其时间开销不可接受,但这是以大对象堆产生大块碎片为代价的,如果以后要分配的大对象比最大的碎片还大,那么即使它比所有碎片的总大小要小,也是无法在不扩展 ...
- 解决win service 2003 IIS发布Gis网站后,访问地图服务出错,无法正常打开而且 事件查看器出现错误提示。
错误详情: 应用程序-特定 权限设置未将 COM 服务器应用程序(CLSID 为{379376DB-AEA6-40D1-9491-9345E61EF6BE})的 本地 激活 权限授予用户 NT AUT ...
- JQ 让光标在文本框最末尾
function setFocus() { //文本末尾获得焦点 var obj = event.srcElement; var txt = obj.createTextRange(); txt.mo ...
- 文字排版--字体(font-family)
我们可以使用css样式为网页中的文字设置字体.字号.颜色等样式属性.下面我们来看一个例子,下面代码实现:为网页中的文字设置字体为宋体. body{font-family:"宋体"; ...