原题链接:http://codeforces.com/gym/100203/attachments/download/1702/statements.pdf

题解

给你平面上若干点,生成一颗完全图,让你生成一颗最小生成树。模板题。图中已经有了的边要将权值置0。代码是队友写的。

代码

  1. #include <iostream>
  2. #include <cstring>
  3. #include <cstdlib>
  4. #include <cstdio>
  5. #include <cmath>
  6. #include <algorithm>
  7. #include <queue>
  8. #include <map>
  9. #include <set>
  10. #include <vector>
  11. #include <string>
  12. #include <stack>
  13. #include <bitset>
  14. #define INF 1000000005
  15. #define eps 1e-10
  16. #define PI acos(-1.0)
  17. #define K (0.017453292519943295769236907684886l)
  18. #define LL long long
  19. #define ULL unsigned long long
  20.  
  21. using namespace std;
  22.  
  23. const int maxn = ;
  24.  
  25. double a[maxn][maxn], dist[maxn];
  26.  
  27. int n, pre[maxn], m, x[maxn], y[maxn], vis[maxn][maxn], flag[maxn];
  28.  
  29. double Get_dist(int s, int t)
  30. {
  31. return sqrt((x[s] - x[t]) * (x[s] - x[t]) + (y[s] - y[t]) * (y[s] - y[t]));
  32. }
  33.  
  34. int main()
  35. {
  36. scanf("%d", &n);
  37. for (int i = ; i <= n; i++)
  38. scanf("%d%d", &x[i], &y[i]);
  39. memset(vis, , sizeof(vis));
  40. for (int i = ; i <= n; i++)
  41. for (int j = ; j <= n; j++)
  42. a[i][j] = Get_dist(i, j);
  43. scanf("%d", &m);
  44. for (int i = ; i <= m; i++)
  45. {
  46. int u, v;
  47. scanf("%d%d", &u, &v);
  48. vis[u][v] = vis[v][u] = ;
  49. a[u][v] = a[v][u] = ;
  50. }
  51. for (int i = ; i <= n; i++)
  52. {
  53. flag[i] = ;
  54. dist[i] = a[][i];
  55. pre[i] = ;
  56. }
  57. flag[] = ; pre[] = ;
  58. for (int i = ; i < n; i++)
  59. {
  60. double minx = 1e30;
  61. int p;
  62. for (int j = ; j <= n; j++)
  63. if (flag[j] && minx > dist[j])
  64. {
  65. minx = dist[j];
  66. p = j;
  67. }
  68. if (!vis[p][pre[p]]) printf("%d %d\n", p, pre[p]);
  69. flag[p] = ;
  70. for (int j = ; j <= n; j++)
  71. if (dist[j] > a[p][j])
  72. {
  73. dist[j] = a[p][j];
  74. pre[j] = p;
  75. }
  76. }
  77. return ;
  78. }

Codeforces Gym 100203H Highways 最小生成树的更多相关文章

  1. Gym - 100203H Highways 最小生成树

    题意:平面上n个点修路,已经修好了m条,再修若干条使得点之间连通,求最小代价的方案. 思路:基本上是裸的最小生成树了,我这里存边直接存在multyset了,取的时候也比较方便,我本来就是这么考虑的,队 ...

  2. Codeforces Gym 101252D&&floyd判圈算法学习笔记

    一句话题意:x0=1,xi+1=(Axi+xi%B)%C,如果x序列中存在最早的两个相同的元素,输出第二次出现的位置,若在2e7内无解则输出-1. 题解:都不到100天就AFO了才来学这floyd判圈 ...

  3. Codeforces Gym 101190M Mole Tunnels - 费用流

    题目传送门 传送门 题目大意 $m$只鼹鼠有$n$个巢穴,$n - 1$条长度为$1$的通道将它们连通且第$i(i > 1)$个巢穴与第$\left\lfloor \frac{i}{2}\rig ...

  4. Codeforces Gym 101623A - 动态规划

    题目传送门 传送门 题目大意 给定一个长度为$n$的序列,要求划分成最少的段数,然后将这些段排序使得新序列单调不减. 考虑将相邻的相等的数缩成一个数. 假设没有分成了$n$段,考虑最少能够减少多少划分 ...

  5. 【Codeforces Gym 100725K】Key Insertion

    Codeforces Gym 100725K 题意:给定一个初始全0的序列,然后给\(n\)个查询,每一次调用\(Insert(L_i,i)\),其中\(Insert(L,K)\)表示在第L位插入K, ...

  6. Codeforces gym 101343 J.Husam and the Broken Present 2【状压dp】

     2017 JUST Programming Contest 2.0 题目链接:Codeforces gym 101343 J.Husam and the Broken Present 2 J. Hu ...

  7. codeforces gym 100553I

    codeforces gym 100553I solution 令a[i]表示位置i的船的编号 研究可以发现,应是从中间开始,往两边跳.... 于是就是一个点往两边的最长下降子序列之和减一 魔改树状数 ...

  8. CodeForces Gym 100213F Counterfeit Money

    CodeForces Gym题目页面传送门 有\(1\)个\(n1\times m1\)的字符矩阵\(a\)和\(1\)个\(n2\times m2\)的字符矩阵\(b\),求\(a,b\)的最大公共 ...

  9. Codeforces GYM 100876 J - Buying roads 题解

    Codeforces GYM 100876 J - Buying roads 题解 才不是因为有了图床来测试一下呢,哼( 题意 给你\(N\)个点,\(M\)条带权边的无向图,选出\(K\)条边,使得 ...

随机推荐

  1. [译]The Python Tutorial#6. Modules

    [译]The Python Tutorial#Modules 6. Modules 如果你从Python解释器中退出然后重新进入,之前定义的名字(函数和变量)都丢失了.因此,如果你想写长一点的程序,使 ...

  2. Jack Straws POJ - 1127 (几何计算)

    Jack Straws Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 5428   Accepted: 2461 Descr ...

  3. Mr. Panda and Crystal HDU - 6007 最短路+完全背包

    题目:题目链接 思路:不难看出,合成每个宝石需要消耗一定的魔力值,每个宝石有一定的收益,所以只要我们知道每个宝石合成的最小花费,该题就可以转化为一个背包容量为初始魔力值的完全背包问题,每个宝石的最小花 ...

  4. ModelViewSet的继承关系

  5. python基础学习笔记——单继承

    1.为什么要有类的继承性?(继承性的好处)继承性的好处:①减少了代码的冗余,提供了代码的复用性②提高了程序的扩展性 ③(类与类之间产生了联系)为多态的使用提供了前提2.类继承性的格式:单继承和多继承# ...

  6. ie9/8的iframe中jQuery报错

    此文章用于对工作中遇到的问题进行记录 jQuery 版本:1.9.1 按照一般的思路,jquery 1.x的是支持ie9及以下的,但是今天发现jquery报错了,代码错误位置在源码版本的第4888行 ...

  7. 如何在官网下载Spring jar包

    该链接里面讲的很仔细! http://blog.csdn.net/frankarmstrong/article/details/69808813

  8. CM10 WIFI连不上解决方案

    手机是Moto Mileston2 ,好久之前就刷成了CM10, 但是一直没出问题. 最近,发现在某些路由器上连接不上,总是 在验证账户或者获取IP. 解决办法如下: http://moto.zol. ...

  9. [adb 学习篇] python将adb命令集合到一个工具上

    https://testerhome.com/topics/6938 qzhi的更全面,不过意思是一样的,另外补充一个开源的https://github.com/264768502/adb_wrapp ...

  10. ubuntu14.04 安装 tensorflow9.0

    ubuntu14.04 安装 tensorflow9.0 文章目录 ubuntu14.04 安装 tensorflow9.0 安装pip(笔者的版本为9.0) 仅使用 CPU 的版本的tensorfl ...