zoj 2966
来源:互联网 发布:兰溪行知学院招租店面 编辑:程序博客网 时间:2024/04/29 09:31
最小生成树裸题
prim 算法:
#include<cstdio>#include<string.h>#include<math.h>#include<iostream>#include<algorithm>using namespace std;#define M 510#define inf 1000000int dis[M],map[M][M],vis[M];void prime(int n){ int i,j,sum=0,p,min; memset(vis,0,sizeof(vis)); vis[0]=1; for(i=1;i<n;i++) { dis[i]=map[0][i]; } for(i=1;i<n;i++) { min=inf;p=-1; for(j=1;j<n;j++) if(vis[j]==0&&min>dis[j]) { min=dis[j];p=j; } sum+=min;vis[p]=1; for(j=0;j<n;j++) if(vis[j]==0&&dis[j]>map[p][j]) dis[j]=map[p][j]; } printf("%d\n",sum);}int main(){int t,i,j,n,m,a,b,c;scanf("%d",&t);while(t--){ scanf("%d%d",&n,&m); for(i=0;i<n;i++) for(j=0;j<n;j++) map[i][j]=inf; for(i=0;i<m;i++) { scanf("%d%d%d",&a,&b,&c); if(map[a][b]>c) map[a][b]=map[b][a]=c; } prime(n);}return 0;}
Kruskal 算法:
#include <stdio.h>#include <iostream>#include <algorithm>#include <string.h>#include <string>using namespace std;int father[1000 + 5];int n,m;int ans;struct Node {int from,to,value;}node[150000];void clear() {memset(node,0,sizeof(node));for(int i=0;i<1005;i++)father[i] = i;ans = 0;}int find(int x) {if(x != father[x])return find(father[x]);return x;}bool cmp(Node x,Node y) {return x.value < y.value;}void kruskal() {for(int i=0;i<m;i++) {int dx = find(node[i].from);int dy = find(node[i].to);if(dx != dy) {father[dy] = dx;ans += node[i].value;}}}int main() {int t;scanf("%d",&t);while(t--) {clear();scanf("%d %d",&n,&m);for(int i=0;i<m;i++) {scanf("%d %d %d",&node[i].from,&node[i].to,&node[i].value);if(node[i].value == 0)father[node[i].to] = node[i].from;}sort(node,node+m,cmp);kruskal();printf("%d\n",ans);}return 0;}
0 0
- zoj 2966
- ZOJ-2966
- zoj 2966
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- 为什么乐蜂网的估值这么低
- js实现网页标题不断改变效果
- C++0x FAQ中文版:std::function 和 std::bind - [C++11 FAQ]
- AOJ problem 6 Hero In Maze
- dgjhk
- zoj 2966
- SqlServer表和EXCEL数据批量复制方法(已解决)
- PMP-项目管理笔记(四)-项目范围管理-收集需求
- 三国杀---用于练习继承和多态
- SSO说明
- (code jam)Problem A. Minimum Scalar Product
- hhjj,
- 我的vim配置
- 板子修理经验一例