The Unique MST----poj1679次小生成树
2015-07-27 14:17
429 查看
题目链接:http://poj.org/problem?id=1679
判断最小生成数是否唯一:如果唯一这权值和次小生成树不同,否则相同;
View Code
判断最小生成数是否唯一:如果唯一这权值和次小生成树不同,否则相同;
#include<stdio.h> #include<string.h> #include<map> #include<iostream> #include<algorithm> #include<math.h> #define N 110 #define INF 0xfffffff using namespace std; int Max , used , vis , maps , dist , fa , n; void Init() { memset(vis, 0, sizeof(vis)); memset(used, 0, sizeof(used)); memset(Max, 0, sizeof(Max)); memset(fa, 0, sizeof(fa)); for(int i=0; i<=n; i++) { dist[i] = INF; for(int j=0; j<=n; j++) if(i == j) maps[i][j] = 0; else maps[i][j] = INF; } } int Prim(int start) { int ans=0; for(int i=1; i<=n; i++) { dist[i] = maps[start][i]; fa[i] = start; } vis[start] = 1; for(int i=1; i<=n; i++) { int Min = INF, index = -1; for(int j=1; j<=n; j++) { if(vis[j]==0 && Min > dist[j]) { Min = dist[j]; index = j; } } if(index == -1)break; vis[index] = 1; ans += Min; used[fa[index]][index] = used[index][fa[index]] = 1; for(int j=1; j<=n; j++) { if(vis[j] == 1 && index != j) { Max[index][j] = Max[j][index] = max(Max[fa[index]][j], dist[index]); } else if(vis[j] == 0 && dist[j] > maps[index][j]) { dist[j] = maps[index][j]; fa[j] = index; } } } return ans; } int SMST(int ans) { int Min = INF; for(int i=1; i<=n;i++) { for(int j=i+1; j<=n; j++) { if(used[i][j]==0 && maps[i][j] != INF) Min=min(Min, ans-Max[i][j]+maps[i][j]); } } return Min; } int main() { int T, m, a, b, c; scanf("%d", &T); while(T--) { scanf("%d%d", &n, &m); Init(); for(int i=0; i<m; i++) { scanf("%d%d%d", &a, &b, &c); maps[a][b] = maps[b][a] = c; } int num1 = Prim(1); int num2 = SMST(num1); if(num1 != num2) printf("%d\n", num1); else printf("Not Unique!\n"); } return 0; }
View Code
相关文章推荐
- poj 1679 The Unique MST
- ${pageContext.request.contextPath}和request.contextPath的区别 分类: jsp el表达式 2013-07-17 15:50 7184人阅读 评论
- [SoapUI] SOAP UI-Groovy Useful Commands
- Xcode6 storyboard new push segue 后的视图控制器没有navigation item bug.
- iOS UIStatusBar字体颜色及隐藏动画
- managedQuery过时的解决办法
- Hibernate 连接数据库,取出query.list()集合中的元素
- [单调队列] hdu 3415 Max Sum of Max-K-sub-sequence
- hdu 5312 Sequence
- iOS Human Interface Guidelines(原创翻译)第四章
- 【线段树】spoj GSS2 Can you answer these queries II
- HDU5312.Sequence
- DataTables warning: table id=dataTable - Requested unknown parameter 'acceptId' for row 0. For more
- hdu5301and15年多校集训1002题(builds)(dfs)
- HDOJ 5306 Gorgeous Sequence 线段树
- 轻松搞定EasyUI
- 54.变换UIButton中的label和image的位置
- 移植MonkeyRunner的图片对比和获取子图功能的实现-UiAutomator/Robotium篇
- 七,可视化的客户端管理工具MongoVUE
- LogCat大量Unexpected value from nativeGetEnabledTags: 0