http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=975

最小生成树。

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <cmath>
 4 #include <algorithm>
 5 #define maxn 1000
 6 using namespace std;
 7 const double inf=(double)(1<<29);
 8
 9 int t,n;
10 struct node
11 {
12     double x,y;
13 }p[maxn];
14 bool vis[maxn];
15 double dis[maxn];
16 double g[maxn][maxn];
17 double ans;
18
19 double sqr(double x)
20 {
21     return x*x;
22 }
23
24 void prim()
25 {
26     memset(vis,false,sizeof(vis));
27     for(int i=1; i<=n; i++) dis[i]=g[1][i];
28     dis[1]=0;
29     vis[1]=true;
30     for(int i=1; i<n; i++)
31     {
32         double m=inf;
33         int x;
34         for(int y=1; y<=n; y++) if(!vis[y]&&dis[y]<m) m=dis[x=y];
35         ans+=m;
36         vis[x]=true;
37         for(int y=1; y<=n; y++) if(!vis[y]&&dis[y]>g[x][y]) dis[y]=g[x][y];
38     }
39 }
40
41 int main()
42 {
43     scanf("%d",&t);
44     while(t--)
45     {
46         scanf("%d",&n);
47         for(int i=1; i<=n; i++)
48         {
49             scanf("%lf%lf",&p[i].x,&p[i].y);
50         }
51         for(int i=1; i<=n; i++)
52         {
53             for(int j=i; j<=n; j++)
54             {
55                 if(i==j) g[i][j]=0;
56                 else
57                 g[i][j]=g[j][i]=sqrt(sqr(p[i].x-p[j].x)+sqr(p[i].y-p[j].y));
58             }
59         }
60         ans=0;
61         prim();
62         printf("%.2lf\n",ans);
63         if(t) printf("\n");
64     }
65     return 0;
66 }

View Code

转载于:https://www.cnblogs.com/fanminghui/p/4022851.html

uva 10034 Problem A: Freckles相关推荐

  1. uva 10034 Freckles (kruskal||prim)

    题目上仅仅给的坐标,没有给出来边的长度,不管是prim算法还是kruskal算法我们都须要知道边的长度来操作. 这道题是浮点数,也没啥大的差别,处理一下就能够了. 有关这两个算法的介绍前面我已经写过了 ...

  2. UVa 1531 - Problem Bee

    题目:如图所看到的的蜂巢型的图中.蜜蜂想从A点飞到B点,假设A与B不在同一个正六边形中, 则它先飞到A的中心.每次飞到相邻格子的中心,最后飞到B的中心,再飞到B点: 假设在一个格子中.直接飞过去就可以 ...

  3. PC/UVa 题号: 110106/10033 Interpreter (解释器)题解 c语言版

    学到两个: //ignore \n cin.ignore(); //ignore a line cin.ignore(1024, '\n'); #include<cstdio> #incl ...

  4. UVA 12235 Help Bubu

    状态压缩DP 题意: 书架上有n本书,给出一个书的高度的序列,我们把相邻的高度相同的书看成一个片段,并且定义该书架的混乱程度为片段的个数.为整理书架,你最多可以从中拿出k本书,然后再把他们插回书架(其 ...

  5. UVa 1471 Defense Lines - 线段树 - 离散化

    题意是说给一个序列,删掉其中一段连续的子序列(貌似可以为空),使得新的序列中最长的连续递增子序列最长. 网上似乎最多的做法是二分查找优化,然而不会,只会值域线段树和离散化... 先预处理出所有的点所能 ...

  6. UVa 12627 Erratic Expansion - 分治

    因为不好复制题目,就出给出链接吧: Vjudge传送门[here] UVa传送门[here] 请仔细看原题上的那幅图,你会发现,在时间t(t > 0),当前的气球构成的一幅图,它是由三个时间为( ...

  7. Spreading the Wealth( UVA - 11300)

    题目链接: Spreading the Wealth UVA - 11300 Problem A Communist regime is trying to redistribute wealth i ...

  8. π-Algorithmist分类题目(3)

    原题网站:Algorithmist,http://www.algorithmist.com/index.php/Main_Page π-Algorithmist分类题目(3) Probability ...

  9. π-Algorithmist分类题目(2)

    原题网站:Algorithmist,http://www.algorithmist.com/index.php/Main_Page π-Algorithmist分类题目(2) Set Theory U ...

  10. sicily题目分类

    sicily题目分类 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. ...

最新文章

  1. java中debug使用
  2. hql中获取前一天的数据_PostgreSql 怎么获取数据库中关键系统信息(一)
  3. Java 的Tuple(类似.net等的元组)
  4. Reporting Services 的伸缩性和性能表现规划(转载)
  5. 哪里可以学3D次世代角色建模?具体学什么东西?
  6. ubuntu下nginx安装
  7. Jquery和angularjs获取check框选中的值小技巧
  8. 利用python炒股talib_TaLib在股票技术分析中的应用
  9. iPhone屏幕尺寸和分辨率
  10. 软件测试 白盒测试用例设计方法动态 逻辑覆盖(语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖)基本路径测试法
  11. vab EXCEL 日历制作
  12. linux点击桌面图标无反应,电脑点击图标没反应怎么回事
  13. [项目管理] 项目管理之配置管理
  14. Flutter InAppWebView 软键盘问题
  15. python访问陌生人qq空间_用Python登录好友QQ空间点赞
  16. 捣鼓openwrt不死bootloader (1)
  17. 搜狗2020校招(后端)笔试第一场
  18. 构成社群的五要素,你了解吗?
  19. EasyExcel基础使用教程
  20. English Learning - Day6 作业打卡 2022.12.12 周一

热门文章

  1. Android 手机的坐标
  2. 天池NLP文本分类比赛如何轻松轻松获得Top K的秘诀!
  3. 【Pre-Training】XLNet:预训练最强,舍我其谁
  4. 网络嵌入之STNE model
  5. 熬了几个通宵,我写了份CUDA新手入门代码
  6. 火山同传助力第四届CTDC首席技术官领袖峰会
  7. TF-layers.MaxPooling1D
  8. 一文弄懂LogSumExp技巧
  9. Java判断文件是否为图片
  10. 7月最强书单丨博文视点新品畅销TOP10,让技术带你燃爆整个7月