1002 Problem B
2016-06-25 11:29
211 查看
题意:给定一些点的坐标,求将所有点连通的最小长度。
思路:最小生成树的问题,因为给出的是点的坐标,所以要先处理一下,得到任意两点间的距离,将其存入邻接矩阵中,利用prim算法即可。
感想:prim算法的使用,关键还是在于理解算法,以及判定的条件。
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<math.h>
using namespace std;
int n;
double d[110],map[110][110],mmin;
const double inf=10000000;
double prim(){
int v[110]={0};
int i,k,m,t=1;
double sum=0;
v[t]=1;
d[t]=0;
for(k=2;k<=n;k++){
mmin=inf;
for(i=1;i<=n;i++)
if(v[i]!=1){
if(d[i]>map[t][i])
d[i]=map[t][i];
if(mmin>d[i]){
mmin=d[i];
m=i;
}
}
v[m]=1;
t=m;
sum+=d[m];
}
return sum;
}
int main(){
double a[110],b[110];
int i,j;
while(cin>>n){
for(i=1;i<=n;i++)
cin>>a[i]>>b[i];
for(i=1;i<=n;i++){
d[i]=inf;
for(j=1;j<=n;j++)
map[i][j]=inf;
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++)
map[i][j]=map[j][i]=sqrt((a[i]-a[j])*(a[i]-b[j])+(b[i]-b[j])*(b[i]-b[j]));
}
printf("%.2lf\n",prim());
}
return 0;
}
思路:最小生成树的问题,因为给出的是点的坐标,所以要先处理一下,得到任意两点间的距离,将其存入邻接矩阵中,利用prim算法即可。
感想:prim算法的使用,关键还是在于理解算法,以及判定的条件。
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<math.h>
using namespace std;
int n;
double d[110],map[110][110],mmin;
const double inf=10000000;
double prim(){
int v[110]={0};
int i,k,m,t=1;
double sum=0;
v[t]=1;
d[t]=0;
for(k=2;k<=n;k++){
mmin=inf;
for(i=1;i<=n;i++)
if(v[i]!=1){
if(d[i]>map[t][i])
d[i]=map[t][i];
if(mmin>d[i]){
mmin=d[i];
m=i;
}
}
v[m]=1;
t=m;
sum+=d[m];
}
return sum;
}
int main(){
double a[110],b[110];
int i,j;
while(cin>>n){
for(i=1;i<=n;i++)
cin>>a[i]>>b[i];
for(i=1;i<=n;i++){
d[i]=inf;
for(j=1;j<=n;j++)
map[i][j]=inf;
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++)
map[i][j]=map[j][i]=sqrt((a[i]-a[j])*(a[i]-b[j])+(b[i]-b[j])*(b[i]-b[j]));
}
printf("%.2lf\n",prim());
}
return 0;
}
相关文章推荐
- 《设计模式解析》读书笔记之Adapter Pattern(适配器模式)
- Android属性动画使用总结
- android_开发中那些踩过的和没踩的坑
- 《剑指offer》:[44]扑克牌的顺子
- Problem C: C语言习题 等长字符串排序
- 313. Super Ugly Number
- 面向对象设计原则之单一职责原则
- Request.UrlReferrer 实现页面刷新
- android http网络编程
- ios代理,多个界面代理问题。
- java开发编译器之:LALR语法解析及代码生成
- iptables清空链的规则
- 第7条:避免使用终结方法
- Mysql5.6.17 zip版本安装
- 欢迎使用CSDN-markdown编辑器
- 浅谈Python中的yield表达式
- javaWeb -- 虚拟主机以及虚拟目录映射的配置
- Net Core
- 使用UE4/Unity创建VR项目
- 使用UE4/Unity创建VR项目