UVA - 10034 Freckles kruskal算法
来源:互联网 发布:adobe cc mac 注册机 编辑:程序博客网 时间:2024/04/30 22:21
题目大意:有N个点,要求你将所有的点连接起来,求连接的线段的长度和,要求长度和达到最小
解题思路:模板题,就不细说了
#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;const int maxn = 10005;double x[105],y[105];double len[maxn];int r[maxn],p[maxn];int find(int x) {return p[x] == x ? x: p[x] = find(p[x]);}int cmp(const int i, const int j) {return len[i] < len[j];}int main() {int test,num;scanf("%d",&test);while(test--) {scanf("%d",&num);for(int i = 0; i <= num * num; i++)r[i] = p[i] = i;for(int i = 0; i < num; i++)scanf("%lf%lf",&x[i],&y[i]);for(int i = 0; i < num; i++)for(int j = 0; j < num; j++)len[i*num+j] = sqrt( (x[i]-x[j]) * (x[i]-x[j]) + (y[i]-y[j]) * (y[i] - y[j]) );sort(r,r+num*num,cmp);double ans = 0;for(int i = 0; i < num * num; i++) {double e = len[r[i]];int x = find(r[i]/num);int y = find(r[i]%num);if( x != y) {ans += e;p[x] = y;}}printf("%.2lf\n",ans);if(test)printf("\n");}return 0;}
0 0
- UVA - 10034 Freckles kruskal算法
- UVA - 10034 Freckles (kruskal算法)
- uva 10034 Freckles (kruskal||prim)
- uva 10034 Freckles(最小生成树Kruskal)
- 【UVA 10034 Freckles】& Kruskal & 最小生成树
- UVa 10034 Freckles Prim算法
- uva 10034 Freckles(最小生成树Kruskal)
- UVa 10034 Freckles (最小生成树+kruskal)
- UVa 10034 Freckles
- UVa 10034 Freckles
- UVa 10034 Freckles
- UVA 10034 - Freckles
- UVA:10034 - Freckles
- UVa 10034 - Freckles
- UVa 10034 Freckles 解答
- UVA 10034 - Freckles
- Uva 10034 - Freckles
- UVA 10034 Freckles
- 常见Java面试题 – 第二部分:equals与==
- CCCallFunc
- ubuntu12.04通过Ganglia利用NVML模块进行GPU监控
- 近阈值计算序曲
- TCP协议中的三次握手和四次挥手(图解)
- UVA - 10034 Freckles kruskal算法
- Automake系列( 四)安装可执行脚本
- android 蓝牙搜索
- SwipeRefreshLayout完美添加及完善上拉加载功能
- GPS坐标转换ddmm.mmmm(度分)-> dd.dddd(度)
- XCode 4 的调试定位技巧
- Java中文乱码原因及解决方法(转)
- android 高斯模糊实现以及性能比较
- lamba 表达式 in