uva 1494 - Qin Shi Huang's National Road System(最小生成树)
来源:互联网 发布:热门聊天社交软件 编辑:程序博客网 时间:2024/05/17 06:37
题目链接:uva 1494 - Qin Shi Huang's National Road System
建成最小生成树之后,枚举两节点,然后删除路径上权值上最大的边。
#include <cstdio>#include <cstring>#include <cmath>#include <vector>#include <algorithm>using namespace std;const int maxn = 1005;struct Edge {int u, v, l;Edge(int u = 0, int v = 0, int l = 0): u(u), v(v), l(l) {}bool operator < (const Edge& u) const { return l < u.l; }};int N, F[maxn], X[maxn], Y[maxn], P[maxn], D[maxn][maxn];vector<Edge> edges, G[maxn];int find (int x) { return x == F[x] ? x : F[x] = find(F[x]); }int distance(int x, int y) { return x * x + y * y; }void init () {scanf("%d", &N);edges.clear();memset(D, 0, sizeof(D));for (int i = 1; i <= N; i++) {F[i] = i;G[i].clear();}for (int i = 1; i <= N; i++) {scanf("%d%d%d", &X[i], &Y[i], &P[i]);for (int j = 1; j < i; j++)edges.push_back(Edge(i, j, distance(X[i]-X[j], Y[i]-Y[j])));}sort(edges.begin(), edges.end());}void dfs (int u, int f, int d, int* p) {p[u] = d;for (int i = 0; i < G[u].size(); i++) {int v = G[u][i].v, td = G[u][i].l;if (v == f) continue;dfs(v, u, max(d, td), p);}}int main () {int cas;scanf("%d", &cas);while (cas--) {init();double S = 0;for (int i = 0; i < edges.size(); i++) {int u = edges[i].u, v = edges[i].v;if (find(u) != find(v)) {F[find(u)] = find(v);G[u].push_back(Edge(u, v, edges[i].l));G[v].push_back(Edge(v, u, edges[i].l));S += sqrt(edges[i].l);}}double ans = 0;for (int i = 1; i <= N; i++) dfs(i, -1, 0, D[i]);for (int i = 1; i <= N; i++)for (int j = i+1; j <= N; j++)ans = max(ans, (P[i] + P[j]) * 1.0 / (S - sqrt(D[i][j])));printf("%.2lf\n", ans);}return 0;}
0 0
- UVa - 1494 Qin Shi Huang's National Road System(最小生成树)
- uva 1494 - Qin Shi Huang's National Road System(最小生成树)
- uva 1494 - Qin Shi Huang's National Road System(次小生成树类似问题)
- uva 1494 Qin Shi Huang's National Road System (次小生成树)
- UVA 1494 - Qin Shi Huang's National Road System(次小生成树)
- HDU 4081Qin Shi Huang's National Road System(最小生成树+最小瓶颈路)
- HDU-4081 Qin Shi Huang's National Road System(最小生成树)
- HDU-4081 Qin Shi Huang's National Road System(最小生成树[Prim])
- hdu 4081 Qin Shi Huang's National Road System(最小生成树变形)
- UVA - 1494 Qin Shi Huang's National Road System (类次小生成树)
- UVA 1494 Qin Shi Huang's National Road System(次小生成树+Prim)
- uva 1494 Qin Shi Huang's National Road System
- LA5713 Qin Shi Huang's National Road System 生成树
- UVA 1494 Qin Shi Huang National Road System(类次小生成树)
- hdu 4081 Qin Shi Huang's National Road System 最小生成树
- HDU 4081 Qin Shi Huang's National Road System 最小/次小生成树的性质
- HDU 4081 Qin Shi Huang's National Road System 最小生成树变形
- hdu4081 Qin Shi Huang's National Road System 最小生成树+DFS★★
- 零基础学python-12.3 for循环
- uva 1416 - Warfare And Logistics(最短路)
- 两个有序数组求解下中位数
- SQLSERVER2008安装教程 亲测可用
- 网站测试全程
- uva 1494 - Qin Shi Huang's National Road System(最小生成树)
- 配置/etc/sysconfig/network-script/ifcfg-eth0
- hdu1828(线段树+扫描线求周长)
- redis常用命令笔记
- ActiveMQ in action 前言
- uva 10129 单词
- Uva-10817 Headmaster's Headache
- JMX的Hello World
- Fedora22远程连接win8.1一路遇到的问题与解决方法