题意:最小生成树的最大边最小,sort从小到大即可

poj2485

  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<algorithm>
  4. using namespace std;
  5. #define maxn 505
  6. int map[maxn][maxn],pa[],num,n;
  7. struct node
  8. {
  9. int x;
  10. int y;
  11. int val;
  12. }s[];
  13. bool cmp(node a,node b)
  14. {
  15. return a.val<b.val;
  16. }
  17. void init()
  18. {
  19. int i,j;
  20. scanf("%d",&n);
  21. for(i=;i<=n;i++)
  22. for(j=;j<=n;j++)
  23. scanf("%d",&map[i][j]);
  24. for(i=;i<=n;i++)
  25. pa[i]=i;
  26. }
  27. void makemap()
  28. {
  29. int i,j;
  30. num=;
  31. for(i=;i<=n;i++)
  32. for(j=i+;j<=n;j++)
  33. {
  34. s[num].x=i;s[num].y=j;s[num++].val=map[i][j];
  35. }
  36. }
  37. int find(int x)
  38. {
  39. if(x!=pa[x])
  40. pa[x]=find(pa[x]);
  41. return pa[x];
  42. }
  43. void kruskal()
  44. {
  45. int i,j,ans=;
  46. sort(s,s+num,cmp);
  47. for(i=;i<num;i++)
  48. {
  49. int l1,l2;
  50. l1=find(s[i].x);l2=find(s[i].y);
  51. if(l1!=l2)
  52. {
  53. pa[l1]=l2;
  54. ans=s[i].val;
  55. }
  56. }
  57. printf("%d\n",ans);
  58. }
  59. int main()
  60. {
  61. int t;
  62. scanf("%d",&t);
  63. while(t--)
  64. {
  65. init();
  66. makemap();
  67. kruskal();
  68. }
  69. return ;
  70. }

poj2395

  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<algorithm>
  4. using namespace std;
  5. #define maxn 2002
  6. int pa[maxn],num,n;
  7. struct node
  8. {
  9. int x;
  10. int y;
  11. int val;
  12. }s[];
  13. bool cmp(node a,node b)
  14. {
  15. return a.val<b.val;
  16. }
  17. void init()
  18. {
  19. int i;
  20. for(i=;i<=n;i++)
  21. pa[i]=i;
  22. }
  23. int find(int x)
  24. {
  25. if(x!=pa[x])
  26. pa[x]=find(pa[x]);
  27. return pa[x];
  28. }
  29. void kruskal()
  30. {
  31. int i,j,ans=;
  32. sort(s,s+num,cmp);
  33. for(i=;i<num;i++)
  34. {
  35. int l1,l2;
  36. l1=find(s[i].x);l2=find(s[i].y);
  37. if(l1!=l2)
  38. {
  39. pa[l1]=l2;
  40. ans=s[i].val;
  41. }
  42. }
  43. printf("%d\n",ans);
  44. }
  45. int main()
  46. {
  47. int i,j;
  48. while(scanf("%d%d",&n,&num)!=EOF)
  49. {
  50. init();
  51. for(i=;i<num;i++)
  52. scanf("%d%d%d",&s[i].x,&s[i].y,&s[i].val);
  53. kruskal();
  54. }
  55. return ;
  56. }

poj2485&&poj2395 kruskal的更多相关文章

  1. POJ2395 Out of Hay(求最小生成树中最大的边权,Kruskal)

    POJ2395 Out of Hay 寻找最小生成树中最大的边权. 使用 Kruskal 求解,即求选取的第 \(n-1\) 条合法边. 时间复杂度为 \(O(e\log e)\) . #includ ...

  2. poj2485 kruskal与prim

    Kruskal: #include<iostream> #include<cstdio> #include<algorithm> using namespace s ...

  3. poj2485(Kruskal)

    这道题显然是一道最小生成树的问题,参考算法导论中的Kruskal方法,先对路径长度进行排序,然后使用并查集(Disjoint Set Union)来判断节点是否连通,记录连接所有节点的最后一条路径的长 ...

  4. Kruskal算法求最小生成树(POJ2485)

    题目链接:http://poj.org/problem?id=2485 #include <iostream> #include <stdio.h> #include < ...

  5. POJ-2485 Highways---最小生成树中最大边

    题目链接: https://vjudge.net/problem/POJ-2485 题目大意: 求最小生成树中的最大边 思路: 是稠密图,用prim更好,但是规模不大,kruskal也可以过 #inc ...

  6. POJ-2395 Out of Hay---MST最大边

    题目链接: https://vjudge.net/problem/POJ-2395 题目大意: 求MST中的最大边,和POJ-2495类似 思路: 模板直接过 #include<iostream ...

  7. 图的生成树(森林)(克鲁斯卡尔Kruskal算法和普里姆Prim算法)、以及并查集的使用

    图的连通性问题:无向图的连通分量和生成树,所有顶点均由边连接在一起,但不存在回路的图. 设图 G=(V, E) 是个连通图,当从图任一顶点出发遍历图G 时,将边集 E(G) 分成两个集合 T(G) 和 ...

  8. 最小生成树---Prim算法和Kruskal算法

    Prim算法 1.概览 普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树.意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (gra ...

  9. 最小生成树(prim&kruskal)

    最近都是图,为了防止几次记不住,先把自己理解的写下来,有问题继续改.先把算法过程记下来: prime算法:                  原始的加权连通图——————D被选作起点,选与之相连的权值 ...

随机推荐

  1. 孙鑫视频学习:VS2010中找不到【Tab order】菜单项

    在学习孙鑫视频中,修改Tab顺序时,找不到VC6.0中提到的[Layout]->[Tab order]菜单项,但VC2010中可以用Ctrl+D调出来Tab顺序,或者[格式]->[Tab键 ...

  2. 我的Unity学习路线

    前言 上班的时间内都很忙在做项目,休息时间里闲下来了,却觉得没什么事做不自在.难道真是苦逼的命不会享受? 想了一下这一段时间以来的过程:先是重新看了一遍Unity的基础部分,然后买了<3D数学基 ...

  3. java14-4 Pattern和Matcher类的使用

     获取功能  Pattern和Matcher类的使用  模式和匹配器的基本使用顺序 import java.util.regex.Matcher; import java.util.regex.Pat ...

  4. java11-5 String类的转换功能

    String的转换功能: byte[] getBytes():把字符串转换为字节数组. char[] toCharArray():把字符串转换为字符数组. static String valueOf( ...

  5. Android签名机制:生成keystore、签名、查看签名信息

    转自:http://www.ourunix.org/post/146.html

  6. openstack虚拟机迁移的操作记录

    需求说明:计算节点linux-node1.openstack:192.168.1.8  计算节点linux-node2.openstack:192.168.1.17 这两个计算节点在同一个控制节点下( ...

  7. aop介绍

  8. C语言 百炼成钢15

    //题目43:有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人退出 //圈子,问最后留下的是原来第几号的那位. #include<stdio.h> #inclu ...

  9. 解决服务器连接错误Host ‘XXX’ is not allowed to connect to this MySQL server

    这段时间在研究火车头的入库教程,在“配置登陆信息和数据库(mysql)”连接中,出现“服务器连接错误Host 'XXX' is not allowed to connect to this MySQL ...

  10. 怎么写针对IE9的CSS

    (自己亲自试过有用)针对IE9的CSS只需在相应CSS代码加入只有IE9识别的 \9\0.具体代码如下: .div{ background-color:#0f0\9\0;/* ie9 */ } 其他浏 ...