HDU 5624 KK's Reconstruction(最小生成树)
来源:互联网 发布:域名评价 编辑:程序博客网 时间:2024/04/29 22:56
题目链接:点击打开链接
题意:n个城市, m条可以修建的路, 修每条路有一个费用, 要求修建路将n个城市全部联通,并且最大费用减去最小费用最小。
思路:枚举最小边, 然后重新求一遍最小生成树,复杂度m^2, 出的数据水了, 昨天BC水过了。。
细节参见代码:
#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<string>#include<vector>#include<stack>#include<bitset>#include<cstdlib>#include<cmath>#include<set>#include<list>#include<deque>#include<map>#include<queue>#define Max(a,b) ((a)>(b)?(a):(b))#define Min(a,b) ((a)<(b)?(a):(b))using namespace std;typedef long long ll;const double PI = acos(-1.0);const double eps = 1e-6;const int mod = 1000000000 + 7;const ll INF = (ll)2100000000;const int maxn = 2000 + 10;const int maxm = 15000 + 10;int T,n,m,p[maxn];struct node { ll a, b, c; bool operator < (const node& rhs) const { return c < rhs.c; }}a[maxm];int _find(int x) { return p[x] == x ? x : p[x] = _find(p[x]); }int main() { scanf("%d",&T); while(T--) { scanf("%d%d",&n,&m); for(int i=0;i<m;i++) { scanf("%d%d%d",&a[i].a,&a[i].b,&a[i].c); } sort(a,a+m); ll ans = INF; for(int i=1;i<=n;i++) p[i] = i; for(int i=0;i<m;i++) { ll minv = a[i].c, maxv = a[i].c; ll cnt = 1; for(int j=1;j<=n;j++) p[j] = j; for(int j=i;j<m;j++) { int x = _find(a[j].a); int y = _find(a[j].b); if(x != y) { p[x] = y; maxv = a[j].c; ++cnt; } if(cnt == n) break; } if(cnt == n) ans = min(ans, maxv - minv); } if(ans == INF) printf("-1\n"); else printf("%I64d\n",ans); } return 0;}
0 0
- HDU 5624 KK's Reconstruction(最小生成树)
- HDU 5624 KK's Reconstruction(最小生成树-Kruskal)
- hdu 5624 KK's Reconstruction(最小生成树)
- HDU 5624 KK's Reconstruction
- hdu 5624 KK's Reconstruction
- HDU 5624 KK's Reconstruction(暴力 + MST)
- KK's Reconstruction
- hdu 1162 Eddy's picture(最小生成树)
- hdu 1162 Eddy's picture(基础最小生成树)
- hdu 2122 Ice_cream’s world III(最小生成树)
- HDU 1162 Eddy's picture(图论-最小生成树)
- hdu 2122 Ice_cream’s world III(最小生成树)
- HDU-1162 Eddy's picture(最小生成树[Kruskal])
- HDU 1162 Eddy's picture(最小生成树-Prim)
- HDU 1162 Eddy's picture (最小生成树)
- hdu 1162 Eddy's picture(最小生成树,prim)
- HDU 1162 Eddy's picture (最小生成树)
- HDU 5623 KK's Number(DP)
- SAE上使用curl函数附带cookie的一些细节
- HTML5开发移动web应用——SAP UI5篇(3)
- ViewPager实现大图轮播
- Linux内核模块简介
- cxf拦截器
- HDU 5624 KK's Reconstruction(最小生成树)
- 蓝桥杯 字符图形 2013年基础题
- HIWORD和LOWORD
- VS2015 安装不成功,运行时xxxxpackage找不到或没有正确配置
- SQL快速入门
- spark原理及工作流程
- 字符串模式匹配
- 《编程珠玑》读书笔记第一章
- [Python 与 炒股] TuShare 分析篇