裸题,上模板就行,注意j  !  =  k

  1. #include<map>
  2. #include<set>
  3. #include<cmath>
  4. #include<queue>
  5. #include<stack>
  6. #include<vector>
  7. #include<cstdio>
  8. #include<cassert>
  9. #include<iomanip>
  10. #include<cstdlib>
  11. #include<cstring>
  12. #include<iostream>
  13. #include<algorithm>
  14. #define pi acos(-1)
  15. #define ll long long
  16. #define mod 1000000007
  17. #define ls l,m,rt<<1
  18. #define rs m+1,r,rt<<1|1
  19. #pragma comment(linker, "/STACK:1024000000,1024000000")
  20.  
  21. using namespace std;
  22.  
  23. const double g=10.0,eps=1e-;
  24. const int N=+,maxn=,inf=0x3f3f3f;
  25.  
  26. int c[N][N],d[N],pre[N],n;
  27. int maxx[N][N];
  28. bool vis[N],used[N][N];
  29. int prim()
  30. {
  31. memset(vis,,sizeof vis);
  32. memset(used,,sizeof used);
  33. memset(maxx,,sizeof maxx);
  34. for(int i=;i<=n;i++)
  35. {
  36. pre[i]=;
  37. d[i]=c[][i];
  38. }
  39. vis[]=;
  40. pre[]=;
  41. d[]=;
  42. int ans=;
  43. for(int i=;i<=n;i++)
  44. {
  45. int mind=inf,k;
  46. for(int j=;j<=n;j++)
  47. {
  48. if(!vis[j]&&mind>d[j])
  49. {
  50. mind=d[j];
  51. k=j;
  52. }
  53. }
  54. vis[k]=;
  55. ans+=mind;
  56. used[k][pre[k]]=used[pre[k]][k]=;
  57. for(int j=;j<=n;j++)
  58. {
  59. if(vis[j]&&j!=k)maxx[j][k]=maxx[k][j]=max(maxx[j][pre[k]],d[k]);
  60. if(!vis[j]&&d[j]>c[j][k])
  61. {
  62. d[j]=c[j][k];
  63. pre[j]=k;
  64. }
  65. }
  66. }
  67. return ans;
  68. }
  69. int smst(int mst)
  70. {
  71. int ans=inf;
  72. for(int i=;i<=n;i++)
  73. {
  74. for(int j=i+;j<=n;j++)
  75. {
  76. if(c[i][j]!=inf&&!used[i][j])
  77. {
  78. ans=min(ans,mst+c[i][j]-maxx[i][j]);
  79. }
  80. }
  81. }
  82. return ans;
  83. }
  84. int main()
  85. {
  86. ios::sync_with_stdio(false);
  87. cin.tie();
  88. int t,m;
  89. cin>>t;
  90. while(t--){
  91. cin>>n>>m;
  92. for(int i=;i<=n;i++)
  93. {
  94. c[i][i]=;
  95. for(int j=i+;j<=n;j++)
  96. c[i][j]=c[j][i]=inf;
  97. }
  98. while(m--){
  99. int x,y,z;
  100. cin>>x>>y>>z;
  101. c[x][y]=c[y][x]=z;
  102. }
  103. int ans=prim();
  104. cout<<ans<<" "<<smst(ans)<<endl;
  105. }
  106. return ;
  107. }

uva10600次小生成树模板题的更多相关文章

  1. POJ-1679 The Unique MST,次小生成树模板题

    The Unique MST Time Limit: 1000MS   Memory Limit: 10000K       Description Given a connected undirec ...

  2. poj 1679 The Unique MST (次小生成树模板题)

    Given a connected undirected graph, tell if its minimum spanning tree is unique. Definition 1 (Spann ...

  3. poj-2421-最小生成树刷题

    title: poj-2421-最小生成树刷题 date: 2018-11-20 20:30:29 tags: acm 刷题 categories: ACM-最小生成树 概述 做了几道最小生成树的题, ...

  4. poj 2831 次小生成树模板

    /*次小生成树 题意:给你一些路径,现在将一部分路径权值减少后问是否可以替代最小生成树里面的边. 解:次小生成树,即将这条边连上,构成一个环 求出任意两点路径之间的除了这条边的最大值,比较这个最大值& ...

  5. poj1679The Unique MST(次小生成树模板)

    次小生成树模板,别忘了判定不存在最小生成树的情况 #include <iostream> #include <cstdio> #include <cstring> ...

  6. UVA10600 次小生成树

    题目链接:https://vjudge.net/problem/UVA-10600 题意:叫我们求出最小生成树的边权之和 和次小生成树的边权之和. 思路:我们可以先求出最小生成树,这个不难,如果要求次 ...

  7. POJ_1679_The Unique MST(次小生成树模板)

    The Unique MST Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 23942   Accepted: 8492 D ...

  8. poj1679次小生成树入门题

    次小生成树求法:例如求最小生成树用到了 1.2.4这三条边,总共5条边,那循环3次的时候,每次分别不用1.2.4求得最小生成树的MST,最小的MST即为次小生成树 如下代码maxx即求最小生成树时求得 ...

  9. POJ 1679 The Unique MST 【最小生成树/次小生成树模板】

    The Unique MST Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 22668   Accepted: 8038 D ...

随机推荐

  1. 机器学习第2周---炼数成金-----线性回归与Logistic

    重点归纳 回归分析就是利用样本(已知数据),产生拟合方程,从而(对未知数据)迚行预测用途:预测,判别合理性例子:利用身高预测体重:利用广告费用预测商品销售额:等等.线性回归分析:一元线性:多元线性:广 ...

  2. SqoopFlume、Flume、HDFS之间比较

    Sqoop Flume HDFS Sqoop用于从结构化数据源,例如,RDBMS导入数据 Flume 用于移动批量流数据到HDFS HDFS使用 Hadoop 生态系统存储数据的分布式文件系统 Sqo ...

  3. 企业规范化管理系统iClap前生后世全解析

    iClap是一个产品管理系统,专注于为移动互联网企业提供企业规范化解决方案,改变传统的产品管理模式,实现产品管理场景化.APP.甚至原型图.效果图都可以直接进行批注和任务的协作,实时将你要修改的内容或 ...

  4. selenium的基本介绍

    应吴姑娘(漂亮的姑娘)之邀,加上我师兄(屌丝)和国新(屌丝),组了个四黑小团伙,每周二分享点东西,感觉就是四个辣鸡相互取暖.可惜,今天早上直接是睡过去了,下午都捐给了<白夜追凶>---没办 ...

  5. Windows打开软件老是弹出无法验证发布者

    使用组策略管理器 gpedit.msc 用户配置-管理模板-Windows组件-附件管理器-中等风险文件类型的包含列表 .exe;.cmd;.bat;.js即可

  6. char、varchar与text

    总结自:https://www.cnblogs.com/mjbrian/p/6866263.html char:       定长,长度范围是0~255. 当长度不足255时,用空格来填充剩下的字符. ...

  7. saltstack实现自动化扩容

    案例:当nginx的并发达到3000,并持续了一段时间时,通过自动化创建一台虚拟机,部署应用最后添加到集群提供服务: zabbix监控(nginx并发量)------->action------ ...

  8. 基于tomcat集群做session共享

    前端代理服务器nginx:192.168.223.136 tomcat服务器:采用的一台多实例192.168.223.146:8081,192.168.223.146:8082(如何构建多实例tomc ...

  9. (转)国内yum源的安装(163,阿里云,epel)

    国内yum源的安装(163,阿里云,epel) ----阿里云镜像源 1.备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS ...

  10. 彻底搞懂hashCode与equals的作用与区别及应当注意的细节

    以前写程序一直没有注意hashCode的作用,一般都是覆盖了equals,缺没有覆盖hashCode,现在发现这是埋下了很多潜在的Bug!今天就来说一说hashCode和equals的作用. 先来试想 ...