poj 2485
来源:互联网 发布:淘宝活动代码 编辑:程序博客网 时间:2024/06/18 15:12
水题
求最小生成树的最大边
改一下条件就行
prim
#include<cstdio>#include<iostream>#include<cstring>#include<iostream>using namespace std;const int INF=0x3f3f3f;bool used[505];int mincost[505];int cost[505][505];int prim(int n){for(int i=1;i<=n;i++)mincost[i]=INF;memset(used,false,sizeof(used));int ans=0;mincost[1]=0;for(int i=1;i<=n;i++){int v=-1;for(int u=1;u<=n;u++)if(!used[u]&&(v==-1||mincost[u]<mincost[v])) v=u;if(v==-1) break;used[v]=true;ans=max(ans,mincost[v]);for(int u=1;u<=n;u++)mincost[u]=min(mincost[u],cost[u][v]); }return ans;}int main(){int t;scanf("%d",&t);while(t--){int n,dd;scanf("%d",&n);for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){scanf("%d",&dd);cost[i][j]=dd;}printf("%d\n",prim(n));} }kruskal
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;struct edge{int u,v,cost;}es[505*505];bool cmp(edge a,edge b){return a.cost<b.cost;}int f[505];int Find(int x){if(x==f[x]) return x;return f[x]=Find(f[x]);}int Unite(int x,int y){int fx=Find(x);int fy=Find(y);f[fx]=fy;}int kruskal(int e,int n){sort(es,es+e,cmp);for(int i=1;i<=n;i++)f[i]=i;int ans=0;for(int i=0;i<e;i++){edge ee=es[i];if(Find(ee.u)!=Find(ee.v)){Unite(ee.u,ee.v);ans=max(ans,ee.cost);}}return ans;}int main(){int t;scanf("%d",&t);while(t--){int n,dd,e=0;scanf("%d",&n);for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){scanf("%d",&dd);es[e].u=i; es[e].v=j; es[e].cost=dd; e++;}}printf("%d\n",kruskal(e,n));} }
阅读全文
0 0
- poj poj 2485 Highways
- POJ 2485
- poj 2485
- POJ-2485
- poj 2485
- poj.2485
- poj-2485
- poj 2485
- poj 2485
- poj 2485
- POJ 2485
- POJ 2485
- POJ--2485
- poj-2485
- poj-2485
- poj 2485
- POJ 2485
- poj 2485
- Activity之间 --- 数据传递
- ps学习记录
- 读《谁说大象不能跳舞》
- IBM笔记本电脑如何设置u盘启动?
- QProcess
- poj 2485
- C#之面向对象的简单总结
- 小波滤波及小波基函数的选择
- Codeforces Round #429 (Div2) B
- java-3-多线程-初步了解-3-并发
- moocOnline项目笔记
- 取消输入sudo后必须要输入的密码选项?
- 救援
- 奇淫技巧____QQ邮箱配置地址接收其他邮箱右键