USACO 3.1.1 网络布线
来源:互联网 发布:越狱录屏软件 编辑:程序博客网 时间:2024/05/16 07:06
USACO 3.1.1 网络布线
2017年7月14日
最小生成树
- Kruskal
- Prim
- Kruskal
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int N;#define maxx 100*100+100struct Edges{ int x, y, v;}E[maxx];int ans = 0;int minpay = 0;//最小花费int FatherRoot[120];//并查集void Getinto(int ai, int bi, int ci){ E[++ans].x = ai; E[ans].y = bi; E[ans].v = ci;}bool cmp(Edges a, Edges b){return a.v < b.v;}void Putin(){ cin >> N; int t; for(int i = 1; i <= N; i++) for(int k = 1; k <= N; k++){ cin >> t; if(i != k && i < k) Getinto(i, k, t); } sort(E + 1, E + ans + 1, cmp); for(int i = 1; i <= N; i++) FatherRoot[i] = i; return;}inline int GetFatherRoot(int a){ if(FatherRoot[a] == a) return a; int b = GetFatherRoot(FatherRoot[a]); FatherRoot[a] = b; return b;}inline void UnionVertex(int a, int b){ int fx = GetFatherRoot(a); int fy = GetFatherRoot(b); FatherRoot[fx] = fy;}void Kruskal(){ for(int i = 1; i <= ans; i++) { int h1 = GetFatherRoot(E[i].x); int h2 = GetFatherRoot(E[i].y); if(h1 == h2) continue; minpay += E[i].v; UnionVertex(E[i].x, E[i].y); }}int main(){ Putin(); Kruskal(); cout << minpay << endl; return 0;}
- Prim
#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int N;int V[120][120];int MinDis[120];bool Jud[120];int Length = 0;void Putin(){ cin >> N; memset(V, 10, sizeof(V)); for(int i = 1; i <= N; i++) for(int k = 1; k <= N; k++) cin >> V[i][k]; memset(Jud, false, sizeof(Jud)); for(int i = 1; i <= N; i++) MinDis[i] = V[1][i]; Jud[1] = true;}void MST_PRIM(){ for(int i = 1; i <= N - 1; i++) { int minn = V[0][0]; int sgn = -1; for(int k = 1; k <= N; k++) if(MinDis[k] < minn && !Jud[k]){ minn = MinDis[k]; sgn = k; } Jud[sgn] = true; Length += minn; for(int k = 1; k <= N; k++) if(!Jud[k] && MinDis[k] > V[sgn][k]) MinDis[k] = V[sgn][k]; }}int main(){ Putin(); MST_PRIM(); cout << Length << endl; return 0;}
阅读全文
0 0
- USACO 3.1.1 网络布线
- USACO 3.1.1最小网络题解
- 1340: [USACO 3.1.1]最短网络
- 网吧网络布线
- fjnu 1391 网络布线
- 【USACO题库】3.1.1 Agri-Net最短网络
- 【USACO题库】3.1.1 Agri-Net最短网络
- 【USACO题库】3.1.1 Agri-Net最短网络
- USACO 4.2.1 网络流 EK
- USACO 4.2.1 网络流 Dinic
- USACO 4.2.1 网络流 SAP
- USACO 3.1.1
- PCB 布线规则1
- 布线
- USACO 3.1.1 Agri-Net 最短网络(最小生成树Prime算法)
- 【USACO题库】【并查集】3.1.1 Agri-Net最短网络2
- 【USACO题库】【并查集】3.1.1 Agri-Net最短网络
- [USACO]最短网络
- 如何创建快捷方式并添加到开始菜单、桌面、任务栏....
- Java 枚举(enum) 详解7种常见的用法
- CodeForces 831C Jury Marks(set)
- UVA 11292
- 网页设计配色方法论:配色秩序
- USACO 3.1.1 网络布线
- Jenkins:解决Console Output中文乱码问题
- opengl坐标系
- android只绘制一部分图片的解决方法
- 最短路径(shortest distance)
- 使用stringstream类
- resteasy配置与使用
- PCM编码后的音频数据存放格式说明
- 方正盗窃源代码,究竟为什么?