UVa10034 Freckles
来源:互联网 发布:道德经知其雄 守其雌 编辑:程序博客网 时间:2024/06/03 06:32
题意:平面内有n个点,求最小生成树。
思路:就是最小生成树。。prim算法。不过我连图都没建,因为每两个点之间都是连通的,需要的时候算一下长度就好了。
#include <iostream>#include <stdio.h>#include <cmath>#include <algorithm>#include <iomanip>#include <cstdlib>#include <string>#include <memory.h>#include <vector>#include <queue>#include <stack>#include <ctype.h>using namespace std;struct point{double x;double y;};point pt[110]; double dis[110];bool vis[110];double dist(point p1,point p2){return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));}int main(){int t;cin>>t;while(t--){memset(vis,0,sizeof(vis));int n;cin>>n;for(int i=1;i<=n;i++){cin>>pt[i].x>>pt[i].y;}for(int i=1;i<=n;i++){dis[i]=dist(pt[1],pt[i]);}vis[1]=true;double ans=0.0;for(int k=1;k<n;k++){double tmp=99999.9;int key;for(int i=1;i<=n;i++){if(vis[i])continue;if(dis[i]<tmp){tmp=dis[i];key=i;}}ans+=dis[key];vis[key]=true;for(int i=1;i<=n;i++){if(dist(pt[key],pt[i])<dis[i]){dis[i]=dist(pt[key],pt[i]);}}}printf("%.2lf\n",ans);if(t)cout<<endl;} return 0;}
0 0
- uva10034 - Freckles
- UVa10034 Freckles
- UVa10034 Freckles
- uva10034 Freckles
- uva10034 - Freckles(斑点)
- UVA10034 - Freckles(最小生成树)
- UVa10034
- uva10034
- uva10034
- uva10034
- Freckles
- Freckles
- 最小生成树-Uva10034
- uva10034 最小生成树
- uva10034(并查集)
- poj_2560 Freckles
- poj_2560 Freckles
- POJ2560--Freckles
- USACO pprime WA code
- 数据库问题
- Android 打造自己的个性化应用(二):应用程序内置资源实现换肤功能
- 由PHP底层工作原理说起
- 让你的代码发声
- UVa10034 Freckles
- How to use Console.WriteLine in ASP.Net (C#) during debug?
- 关于mysql数据库常遇到的问题和解决方法
- WebRTC 客户端ICE 延迟问题
- Labview学习之波形图表的历史数据
- PHP isset()与empty()的区别
- 英文操作系统中使用非Unicode版本的中文程序
- 进程
- 学习笔记_2014.06.06