开始想着二分最大值,然而调了调怎么都不对QAQ….
然后看了一下解答:
最小生成树确定最小的边究竟是多少,因为你要求最大边最小嘛…那这样肯定能求出最小值,但这样结果未必最优….所以,我们再倒着去加入并查集就好了,从最大边开始搞一个最大生成树
这样贪心肯定是对的嘛QAQ….然后总长度要用longlong,会爆int…

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int par[100005];
struct edge{int a1,a2,cost;
}G[200005];
bool cmp(edge a,edge b)
{return a.cost<b.cost;
}
int find(int x)
{return par[x]==x?x:par[x]=find(par[x]);
}
bool unite(int x,int y)
{x=find(x),y=find(y);if(x==y)return false;par[x]=y;return true;
}
int main()
{int n,m,i,j,k;cin>>n>>m;for(i=1;i<=m;i++)scanf("%d%d%d",&G[i].a1,&G[i].a2,&G[i].cost);sort(G+1,G+1+m,cmp);for(i=1;i<=n;i++)par[i]=i;int cnt=0,maxn;for(i=1;i<=m;i++){if(unite(G[i].a1,G[i].a2))cnt++;if(cnt==n-1){maxn=G[i].cost;break;}}int pos;for(i=1;i<=m;i++)if(G[i].cost>maxn){pos=i-1;break;}for(i=1;i<=n;i++)par[i]=i;cnt=0;long long len=0;//longlong!!for(i=pos;i;i--){if(unite(G[i].a1,G[i].a2)){cnt++;len+=G[i].cost;}if(cnt==n-1)break;}cout<<len<<endl;return 0;
}

51Nod - 1640相关推荐

  1. 51Nod 1640 - 天气晴朗的魔法(最小生成树变形)

    题目链接 http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1640 [题目描述] 这样阴沉的天气持续下去,我们不免担心起他的 ...

  2. 51nod 1617 奇偶数组

    传送门 回来看一眼51nod,发现自己掉到rank4了,赶紧切道题回rank3. 一眼不会做,这种东西应该慢慢找规律吧--然后看到数据范围其实比较小,应该是单次log的,那是不是可以分治啊. #inc ...

  3. 51NOD 1773:A国的贸易——题解

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1773 参考1:FWT讲解 https://www.cnblogs.com ...

  4. 51nod 1040:最大公约数之和(数论)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1040 给出一个n,求1-n这n个数,同n的最大公约数的和. ...

  5. (DP)51NOD 1183 编辑距离

    编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数.许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除 ...

  6. 斜率小于0的连线数量 51Nod - 1107 (树状数组+离散化)

    二维平面上N个点之间共有C(n,2)条连线.求这C(n,2)条线中斜率小于0的线的数量. 二维平面上的一个点,根据对应的X Y坐标可以表示为(X,Y).例如:(2,3) (3,4) (1,5) (4, ...

  7. 51Nod 1003 阶乘后面0的数量(数学,思维题)

    1003 阶乘后面0的数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 5         难度:1级算法题 n的阶乘后面有多少个0? 6的阶乘 = 1*2*3*4*5*6 = 720 ...

  8. 51nod 1270 数组的最大代价

    1270 数组的最大代价 题目来源: HackerRank 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 数组A包含N个元素A1, A2......AN.数组B包 ...

  9. 51nod 算法马拉松18 B 非010串 矩阵快速幂

    51nod 算法马拉松18 B 非010串 矩阵快速幂 非010串 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 如果一个01字符串满足不存在010这样的子串,那么称它为非010串 ...

最新文章

  1. 课堂练习---最低价格买书
  2. 计算机二级常备知识,2020年计算机二级Office考试必备题库资料!
  3. win7c盘空间越来越小_电脑一分钟小技巧:如何更改电脑桌面路径?
  4. C++程序员迈向百万年薪的最后一道坎
  5. bzoj 3036: 绿豆蛙的归宿(Dp)
  6. oracle add命令详解,oracle job详解
  7. python交互界面实例_Python面向对象编程扑克牌发牌程序,另含大量Python代码!
  8. Json格式类的转换相关代码--转载
  9. Android 的开源项目的网址
  10. 明解C语言第七章习题
  11. 2016年上半年系统集成中项4月6日作业
  12. GOOGLE搜索局域网聊天软件局域网聊天软件
  13. Windows 10快速截图快捷键 (Windows徽标键+shift+S)
  14. 【3D目标检测】点云数据 To 360度全景图
  15. 【Unity】如何使用MD5加密方式传递资料
  16. python eel 多线程_Python的一个轻量级桌面GUI开发第三方库:Eel
  17. 自动驾驶系统的传感器标定方法
  18. 数据结构杂谈(七)——串
  19. JavaWeb 新闻发布系统数据分页操作
  20. 1009 Problem I

热门文章

  1. 《大秦赋》最近有点火!于是我用Python抓取了“相关数据”,发现了这些秘密......
  2. oracle变更为大表分区表,叶摇 » Blog Archive » oracle把没有分区的普通大表改成分区表...
  3. 河北计算机四六级报名入口,河北英语四六级报名时间
  4. linux排查进程退出原因面试,linux面试中经常会遇到的问题
  5. 手机SD卡数据恢复【图文教程】
  6. Epub电子书阅读器功能技术预研
  7. 基于MATLAB的数字水印算法研究实现
  8. aes128 cmac java_使用PHP进行CMAC-AES散列
  9. 巴斯光年python turtle绘图__附源代码
  10. asp 采集系统_在微服务框架中添加SkyWalking+SkyApm-dotnet分布式链路追踪系统