LightOj-1029-Civil and Evil Engineer
来源:互联网 发布:百川考试软件怎么样 编辑:程序博客网 时间:2024/05/05 09:51
题目传送门
题意:给定一个无向图,求他的最小生成树与最大生成树的平均值。
思路:用Kruskal正着求最小生成树,再倒着求最大生成树。
#include <bits/stdc++.h>using namespace std;struct node{ int x, y, w;}edge[30000];int cnt;int n;int fa[15000];int cmp1(node a, node b){ return a.w < b.w;}int cmp2(node a, node b){ return a.w > b.w;}int find(int x){ if (fa[x]!=x) fa[x] = find(fa[x]); return fa[x];}int Kruskal(){ int sum = 0; for (int i = 0; i <= n; i++) { fa[i] = i; } for (int i = 0; i < cnt; i++) { int a = find(edge[i].x); int b = find(edge[i].y); if (a!=b) { fa[a] = b; sum+=edge[i].w; } } return sum;}int main(void){ int T, cas=1; scanf("%d", &T); while (T--) { cnt = 0; scanf("%d", &n); int u, v, w; while (scanf("%d %d %d", &u, &v, &w)) { if (u+v+w==0) break; edge[cnt].x = u; edge[cnt].y = v; edge[cnt++].w = w; edge[cnt].x = v; edge[cnt].y = u; edge[cnt++].w = w; } int ans = 0; sort(edge, edge+cnt, cmp1); ans += Kruskal(); sort(edge, edge+cnt, cmp2); ans += Kruskal(); if (ans&1) printf("Case %d: %d/2\n", cas++, ans); else printf("Case %d: %d\n", cas++, ans/2); } return 0;}
阅读全文
0 0
- 【Prim】-LightOJ-1029-Civil and Evil Engineer
- LightOJ 1029 Civil and Evil Engineer
- LightOj 1029 - Civil and Evil Engineer
- LightOJ 1029 Civil and Evil Engineer
- LightOj-1029-Civil and Evil Engineer
- LIGHTOJ 1029 – CIVIL AND EVIL ENGINEER 【PRIM】
- LightOJ - 1029 Civil and Evil Engineer(最大/小生成树)
- Civil and Evil Engineer
- Civil and Evil Engineer
- LightOJ -1029--Civil and Evil Engineer(最小生成树&&最大生成树)
- LightOJ 1029-Civil and Evil Engineer(最小/大生成树)
- lightoj-1029-Civil and Evil Engineer(最小生成树+克鲁斯卡尔算法)
- LightOJ1029-Civil and Evil Engineer-生成树
- light oj 1029 - Civil and Evil Engineer (最大生成树+最小生成树)
- Civil and Evil Engineer(最小生成树+最大生成树)
- attributes of senior engineer and expert engineer
- Getters and Setters Are Evil or Not Evil?
- Evil
- Linux基础——linux和gcc的介绍
- 为什么要进行日志测试和如何进行日志测试?
- 【深度学习】Attention Model详解
- 静态链表 C++
- ST7735学习
- LightOj-1029-Civil and Evil Engineer
- 软件之母—格蕾丝·霍波
- 干货!三步走带你搞定秋招面试!
- Unity网络游戏中的登录注册以及Web安全
- Ehcache缓存的配置文件
- Gym
- 模拟面试题目笔记-- 重定向和请求转发的区别 数据库的事物
- 对线程本地ThreadLocal的理解
- leetcode 343. Integer Break