POJ 2395 Out of Hay

  本题是要求最小生成树中的最大长度, 无向边,初始化es结构体时要加倍,别忘了init(n)并查集的初始化,同时要单独标记使用过的边数,

判断ans==n-1时,即找到了最大边。

  

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <algorithm>
  4. #include <cstring>
  5. #include <queue>
  6. #include <vector>
  7. #include <map>
  8. #include <set>
  9. #include <string>
  10. #include <cmath>
  11. using namespace std;
  12. const int INF=0x3f3f3f3f;
  13. typedef long long ll;
  14. int par[];
  15. int ran[];
  16. struct edge{
  17. int from,to,cost;
  18. };
  19. edge es[];
  20. bool cmp(const edge& x,const edge& y){
  21. return x.cost<y.cost;
  22. }
  23. void init(int n){
  24. for(int i=;i<n;i++){
  25. par[i]=i;
  26. ran[i]=;
  27. }
  28. }
  29. int find(int x){
  30. if(par[x]==x) return x;
  31. return par[x]=find(par[x]);
  32. }
  33. void unite(int x,int y){
  34. x=find(x);
  35. y=find(y);
  36. if(x==y) return ;
  37. if(ran[x]<ran[y]) par[x]=y;
  38. else{
  39. par[y]=x;
  40. if(ran[x]==ran[y])
  41. ran[x]++;
  42. }
  43. }
  44. bool same(int x,int y){
  45. return find(x)==find(y);
  46. }
  47. int main()
  48. {
  49. int n,m,k,res;
  50. scanf("%d%d",&n,&m);
  51. int a,b,c;
  52. k=;
  53. while(m--){
  54. scanf("%d%d%d",&a,&b,&c);
  55. a--;b--;
  56. es[k].from=a;
  57. es[k].to=b;
  58. es[k++].cost=c;
  59. es[k].from=b;
  60. es[k].to=a;
  61. es[k++].cost=c;
  62. }
  63. sort(es,es+k,cmp);
  64. init(n);//注意并查集的初始化
  65. int ans=;
  66. for(int i=;i<k;i++){
  67. edge e=es[i];
  68. if(!same(e.to,e.from)){
  69. unite(e.to,e.from);
  70. ans++;//单独标记已用过的边数
  71. if(ans==n-){
  72. res=e.cost;
  73. break;
  74. }
  75. }
  76. }
  77. printf("%d\n",res);
  78. return ;
  79. }

POJ 2395 Out of Hay(最小生成树中的最大长度)的更多相关文章

  1. Poj 2395 Out of Hay( 最小生成树 )

    题意:求最小生成树中最大的一条边. 分析:求最小生成树,可用Prim和Kruskal算法.一般稀疏图用Kruskal比较适合,稠密图用Prim.由于Kruskal的思想是把非连通的N个顶点用最小的代价 ...

  2. poj 2395 Out of Hay(最小生成树,水)

    Description The cows have run <= N <= ,) farms (numbered ..N); Bessie starts at Farm . She'll ...

  3. 瓶颈生成树与最小生成树 POJ 2395 Out of Hay

    百度百科:瓶颈生成树 瓶颈生成树 :无向图G的一颗瓶颈生成树是这样的一颗生成树,它最大的边权值在G的所有生成树中是最小的.瓶颈生成树的值为T中最大权值边的权. 无向图的最小生成树一定是瓶颈生成树,但瓶 ...

  4. POJ 2395 Out of Hay(求最小生成树的最长边+kruskal)

    Out of Hay Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 18472   Accepted: 7318 Descr ...

  5. POJ 2395 Out of Hay( 最小生成树 )

    链接:传送门 题意:求最小生成树中的权值最大边 /************************************************************************* & ...

  6. poj - 2377 Bad Cowtractors&&poj 2395 Out of Hay(最大生成树)

    http://poj.org/problem?id=2377 bessie要为FJ的N个农场联网,给出M条联通的线路,每条线路需要花费C,因为意识到FJ不想付钱,所以bsssie想把工作做的很糟糕,她 ...

  7. POJ 2395 Out of Hay(MST)

    [题目链接]http://poj.org/problem?id=2395 [解题思路]找最小生成树中权值最大的那条边输出,模板过的,出现了几个问题,开的数据不够大导致运行错误,第一次用模板,理解得不够 ...

  8. POJ 2395 Out of Hay (prim)

    题目链接 Description The cows have run out of hay, a horrible event that must be remedied immediately. B ...

  9. POJ 2395 Out of Hay

    这个问题等价于求最小生成树中权值最大的边. #include<cstdio> #include<cstring> #include<cmath> #include& ...

随机推荐

  1. rsync命令来实现将服务器端的文件备份到客户端

    rsync命令来实现将服务器端的文件备份到客户端

  2. Powerful Regex

    Online test Regex http://rubular.com An example src="http:\/\/localhost:3000\/preveiw-tool\/iph ...

  3. 导出Excel文件,npoi方式和通过microsoft.visual basic.dll

    一:例子截图: 二:NPOI截图 三:EmployeeListWindow.cs代码 using System; using System.Collections.Generic; using Sys ...

  4. Unable to load native-hadoop library解决思路

    最近试着搭建Hadoop,我使用的操作系统是Centos6.5,Hadoop版本是2.6.0. 在安装过程中总是出现:WARN util.NativeCodeLoader: Unable to loa ...

  5. tessilstrona

    Untitled Document

  6. Cstyle的UEFI导读之SEC第一篇 Reset Vector

        最近小看了一下SEC部分的code,现在来做个总结.所谓SEC就是CPU刚刚完成硬件初始化的是时候执行的和CPU体系架构息息相关的代码.主要是为后续CPU以及Chipset初始化代码所需的必备 ...

  7. Solr和ES对比

    Solr与ES(ElasticSearch)对比 搜索引擎选择: Elasticsearch与Solr 搜索引擎选型调研文档 Elasticsearch简介* Elasticsearch是一个实时的分 ...

  8. VC6项目移植到VS2008的若干问题——好的代码,从我做起,从如今做起。

    近期,有个项目开发,须要用到曾经项目的代码,只是曾经项目都是VC6下编译通过的,在VS2008下不一定编译通过,能编译通过也不一定能链接成功.以下总结一下我在一个VC6项目移植到VS2008中遇到的一 ...

  9. android中Canvas使用drawBitmap绘制图片

    1.主要的绘制图片方法 //Bitmap:图片对象,left:偏移左边的位置,top: 偏移顶部的位置     drawBitmap(Bitmap bitmap, float left, float ...

  10. STL——临时对象的产生与运用

    所谓临时对象,就是一种无名对象.它的出现如果不在程序员的预期之下(例如任何pass by value操作都会引发copy操作,于是形成一个临时对象),往往造成效率上的负担.但有时候刻意制造一些临时对象 ...