1640 天气晴朗的魔法(二分最大生成树)
来源:互联网 发布:百度云盘 无网络连接 编辑:程序博客网 时间:2024/05/07 15:36
思路:
二分最大边值,跑最大生成树。stdio.h最后一个样例就0.5s。。cstdio偶尔1.12s
#include <stdio.h> #include<cstring> #include <vector> #include <algorithm> #include <iostream> #include <queue>using namespace std;const int maxn=100005;typedef long long ll;struct node{ ll u,v; ll edge;}vec[maxn*4];int fa[maxn];int n,m;int find(int x){ if(fa[x]!=x) fa[x]=find(fa[x]); return fa[x];}bool cmp(node x, node y){ return x.edge>y.edge;}ll judge(ll x){ for(int i=1;i<=n;i++) fa[i]=i; ll ans=0; int cnt=0; for(int i=1;i<=m;i++) { if(vec[i].edge>x) continue; int u=vec[i].u,v=vec[i].v; int rx=find(u),ry=find(v); if(rx!=ry) { cnt++; fa[rx]=ry; ans+=vec[i].edge; } } if(cnt==n-1) return ans; return 0;}int main(){ scanf("%d%d",&n,&m); ll u,v; ll l=1,r=0; for(int i=1;i<=m;i++) { scanf("%lld%lld%lld",&vec[i].u,&vec[i].v,&vec[i].edge); r=max(vec[i].edge,r); } sort(vec+1,vec+1+m,cmp); ll ans=0; while(l<=r) { ll tmp; ll mid=(l+r)>>1; if(tmp=judge(mid)) { ans=tmp; r=mid-1; } else { l=mid+1; } } printf("%lld\n",ans); return 0;}
1640 天气晴朗的魔法
题目来源: 原创
基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题
收藏
关注
这样阴沉的天气持续下去,我们不免担心起他的健康。
51nod魔法学校近日开展了主题为“天气晴朗”的魔法交流活动。
N名魔法师按阵法站好,之后选取N - 1条魔法链将所有魔法师的魔力连接起来,形成一个魔法阵。
魔法链是做法成功与否的关键。每一条魔法链都有一个魔力值V,魔法最终的效果取决于阵中所有魔法链的魔力值的和。
由于逆天改命的魔法过于暴力,所以我们要求阵中的魔法链的魔力值最大值尽可能的小,与此同时,魔力值之和要尽可能的大。
现在给定魔法师人数N,魔法链数目M。求此魔法阵的最大效果。
Input
两个正整数N,M。(1 <= N <= 10^5, N <= M <= 2 * 10^5)接下来M行,每一行有三个整数A, B, V。(1 <= A, B <= N, INT_MIN <= V <= INT_MAX)保证输入数据合法。
Output
输出一个正整数R,表示符合条件的魔法阵的魔力值之和。
Input示例
4 61 2 31 3 11 4 72 3 42 4 53 4 6
Output示例
12
阅读全文
0 0
- 1640 天气晴朗的魔法(二分最大生成树)
- 51NOD 1640 天气晴朗的魔法(二分+最大生成树)
- 51nod 1640 天气晴朗的魔法【二分+最大生成树】
- 51nod 1640 天气晴朗的魔法 【二分枚举最大生成树】or【最小&&最大 生成树】
- 51nod 1640 天气晴朗的魔法(最小生成树)
- 51nod 1640 天气晴朗的魔法 prime队列+最小生成树+最大生成树+邻接表
- 1640 天气晴朗的魔法
- 51nod1640-最小生成树&二分|性质-天气晴朗的魔法
- 天气晴朗的魔法
- 天气晴朗的魔法
- 51NOD 1640 天气晴朗的魔法 最小生成树 kuskal
- 51nod 1640 天气晴朗的魔法【最小生成树概念】
- 51nod 1640 天气晴朗的魔法
- nod-1640-天气晴朗的魔法
- 51nod 1640 天气晴朗的魔法
- 51nod 1640 天气晴朗的魔法
- 51nod 1640 天气晴朗的魔法
- 51nod 1640 天气晴朗的魔法
- 初识MongoDB
- 远程同步服务器 rsync 服务器主从复制
- java五种最常见的异常
- JavaScript基础(五)- JavaScript的注释
- SVM入门(四)线性分类器的求解——问题的描述Part1
- 1640 天气晴朗的魔法(二分最大生成树)
- About WMI
- BZOJ1975 魔法猪学院 (洛谷P2483)
- 做pua调用女生emotion达到connectivity
- POJ-3320 Jessica's Reading Problem(求最小区间,尺取法)
- 平滑滚动
- 爬取2016-2017赛季NBA球员的数据
- SVM入门(五)线性分类器的求解——问题的描述Part2
- EPOLL模型