[BZOJ 2180]最小直径生成树
来源:互联网 发布:画框图软件 编辑:程序博客网 时间:2024/06/08 04:45
最小直径生成树
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#define maxn 210using namespace std;const int inf = 0x7fffffff / 2;int n, m;int f[maxn][maxn], d[maxn][maxn], p[maxn][maxn];void MST(){//Floydfor(int k = 1; k <= n; k ++) for(int i = 1; i <= n; i ++) for(int j = 1; j <= n; j ++) if(i != j && j != k && k != i) f[i][j] = min(f[i][j], f[i][k] + f[k][j]); //getrankfor(int i = 1; i <= n; i ++){for(int j = 1; j <= n; j ++) p[i][j] = j;for(int j = 1; j <= n; j ++)for(int k = j + 1; k <= n; k ++) if(f[i][p[i][j]] > f[i][p[i][k]]) swap(p[i][j], p[i][k]);}//mainint ans = inf;for(int u = 1; u <= n; u ++){for(int v = 1; v <= n; v ++){if(d[u][v] != inf){ans = min(ans, min(f[u][p[u][n]] << 1, f[v][p[v][n]] << 1));int t = n;for(int k = n - 1; k >= 1; k --){if(f[v][p[u][t]] < f[v][p[u][k]]){ans = min(ans, f[u][p[u][k]] + f[v][p[u][t]] + d[u][v]);t = k;}}}}}printf("%d\n", ans);}int main(){scanf("%d%d", &n, &m);for(int i = 1; i <= n; i ++)for(int j = 1; j <= n; j ++)f[i][j] = d[i][j] = inf;for(int i = 1; i <= n; i ++) f[i][i] = d[i][i] = 0;int u, v, dis;for(int i = 1; i <= m; i ++){scanf("%d%d%d", &u, &v, &dis);f[u][v] = f[v][u] = d[u][v] = d[v][u] = dis;}MST(); return 0;}
0 0
- [BZOJ 2180]最小直径生成树
- [最小直径生成树 模板题] BZOJ 2180 最小直径生成树 & BZOJ 2182 [Spoj1479] TGK & Ural 1569 Networking the “Iset”
- 图的绝对中心(bzoj 2180: 最小直径生成树)
- bzoj2180: 最小直径生成树
- bzoj 2561: 最小生成树
- BZOJ 1050 最小生成树
- bzoj 1232 最小生成树
- bzoj 2561: 最小生成树
- BZOJ 2561 最小生成树 最小割
- BZOJ 2561 - 最小生成树 + 最小割
- 【BZOJ 2561】最小生成树 最小割
- BZOJ 2561(最小生成树-最小割)
- [BZOJ]2561 最小生成树 最小割
- BZOJ 2561: 最小生成树 最小割
- 求图的绝对中心 && 最小直径生成树 MDST
- 求图的绝对中心 && 最小直径生成树 MDST
- 【bzoj2180】【最小直径生成树】【图的绝对中心】
- BZOJ2182: [Spoj1479]The GbAaY Kingdom最小直径生成树
- 算法竞赛入门经典 孪生素数
- ThinkPHP框架总结之安全及使用
- 四维超体运动在三维空间的表现1(使用three.js)
- 第一博客,行走在编程道路上的菜鸟
- HDU 4614 Vases and Flowers(线段树+2分)
- [BZOJ 2180]最小直径生成树
- 排序算法(五)——简单选择排序
- 编程之路
- windows客户端开发--通过ShellExecute函数打开浏览器
- U-boot启动流程分析 Start.s 汇编文件
- JDBC 简单入门
- cento7 crontab
- jquery validate使用Demo实例说明
- Activity、Window、View的关系