POJ 1258 Agri-Net|| POJ 2485 Highways MST
POJ 1258 Agri-Net
http://poj.org/problem?id=1258
水题。
题目就是让你求MST,连矩阵都给你了。
prim版
#include<cstdio>
const int MAXN=101;
const int INF=100000+10;
int map[MAXN][MAXN];
int dis[MAXN];
int n; void prim()
{
bool vis[MAXN]={0};
for(int i=0;i<=n;i++)
dis[i]=INF; int cur=1;
vis[cur]=1;
dis[cur]=0; for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
if(!vis[j] && dis[j] > map[cur][j])
dis[j]=map[cur][j]; int mini=INF;
for(int j=1;j<=n;j++)
if(!vis[j] && dis[j] <mini)
mini=dis[cur=j]; vis[cur]=1;
}
} int main()
{ while(~scanf("%d",&n))
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
scanf("%d",&map[i][j]); prim();
int ans=0;
for(int i=1;i<=n;i++)
ans+=dis[i]; printf("%d\n",ans);
} return 0;
}
kruskal
#include<cstdio>
#include<algorithm>
using namespace std;
const int MAXN=101;
const int INF=100000+10;
int fa[MAXN];
int n; struct data
{
int x,y;
int dis;
}a[MAXN*MAXN];
bool operator< (const data& c,const data &d)
{
return c.dis<d.dis;
} int find(int cur)
{
return cur==fa[cur]? cur:fa[cur]=find(fa[cur]);
} int main()
{ while(~scanf("%d",&n))
{
int len=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
scanf("%d",&a[len].dis);
a[len].x=i;
a[len].y=j;
len++;
} sort(a,a+len);
int ans=0;
for(int i=1;i<=n;i++)
fa[i]=i; for(int i=0;i<len;i++)
{
int rootx=find(a[i].x);
int rooty=find(a[i].y);
if(rootx!=rooty)
{
fa[rootx]=rooty;
ans+=a[i].dis;
} }
printf("%d\n",ans);
} return 0;
}
-------------------------------------------------我是可爱的分割线-------------------------------------------------
poj2485 Highways
http://poj.org/problem?id=2485
题目要求求MST上最长的边。
上面的代码一改就过了。。。。
prim
#include<cstdio>
const int MAXN=520;
const int INF=100000+10;
int map[MAXN][MAXN];
int dis[MAXN];
int n; void prim()
{
bool vis[MAXN]={0};
for(int i=0;i<=n;i++)
dis[i]=INF; int cur=1;
vis[cur]=1;
dis[cur]=0; for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
if(!vis[j] && dis[j] > map[cur][j])
dis[j]=map[cur][j]; int mini=INF;
for(int j=1;j<=n;j++)
if(!vis[j] && dis[j] <mini)
mini=dis[cur=j]; vis[cur]=1;
}
} int main()
{ int T;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
scanf("%d",&map[i][j]); prim();
int ans=0;
for(int i=1;i<=n;i++)
{
if(ans < dis[i])
ans=dis[i];
} printf("%d\n",ans);
} return 0;
}
kruskal
#include<cstdio>
#include<algorithm>
using namespace std;
const int MAXN=520;
const int INF=100000+10;
int fa[MAXN];
int n; struct data
{
int x,y;
int dis;
}a[MAXN*MAXN];
bool operator< (const data& c,const data &d)
{
return c.dis<d.dis;
} int find(int cur)
{
return cur==fa[cur]? cur:fa[cur]=find(fa[cur]);
} int main()
{
int T;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
int len=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
scanf("%d",&a[len].dis);
a[len].x=i;
a[len].y=j;
len++;
} sort(a,a+len);
int ans=0;
for(int i=1;i<=n;i++)
fa[i]=i; for(int i=0;i<len;i++)
{
int rootx=find(a[i].x);
int rooty=find(a[i].y);
if(rootx!=rooty)
{
fa[rootx]=rooty;
ans=a[i].dis;
} }
printf("%d\n",ans);
} return 0;
}
POJ 1258 Agri-Net|| POJ 2485 Highways MST的更多相关文章
- poj 1251 poj 1258 hdu 1863 poj 1287 poj 2421 hdu 1233 最小生成树模板题
poj 1251 && hdu 1301 Sample Input 9 //n 结点数A 2 B 12 I 25B 3 C 10 H 40 I 8C 2 D 18 G 55D 1 E ...
- POJ 2485 Highways【最小生成树最大权——简单模板】
链接: http://poj.org/problem?id=2485 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22010#probl ...
- poj 2485 Highways
题目连接 http://poj.org/problem?id=2485 Highways Description The island nation of Flatopia is perfectly ...
- 最小生成树 10.1.5.253 1505 poj 1258 http://poj.org/problem?id=1258
#include <iostream>// poj 1258 10.1.5.253 1505 using namespace std; #define N 105 // 顶点的最大个数 ( ...
- POJ 3177 Redundant Paths POJ 3352 Road Construction(双连接)
POJ 3177 Redundant Paths POJ 3352 Road Construction 题目链接 题意:两题一样的.一份代码能交.给定一个连通无向图,问加几条边能使得图变成一个双连通图 ...
- POJ 1258 Agri-Net(Prim算法求解MST)
题目链接: http://poj.org/problem?id=1258 Description Farmer John has been elected mayor of his town! One ...
- poj 2485 Highways (最小生成树)
链接:poj 2485 题意:输入n个城镇相互之间的距离,输出将n个城镇连通费用最小的方案中修的最长的路的长度 这个也是最小生成树的题,仅仅只是要求的不是最小价值,而是最小生成树中的最大权值.仅仅须要 ...
- POJ 2485 Highways && HDU1102(20/200)
题目链接:Highways 没看题,看了输入输出.就有种似曾相识的感觉,果然和HDU1102 题相似度99%,可是也遇到一坑 cin输入居然TLE,cin的缓存不至于这么狠吧,题目非常水.矩阵已经告诉 ...
- poj 2485 Highways 最小生成树
点击打开链接 Highways Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 19004 Accepted: 8815 ...
随机推荐
- [Unit testing] data-test attr FTW
Most of time, we get used to use class name as a selector in the test. But one problem for this is c ...
- ubuntu下sudo命令不再输入密码
ubuntu下普通用户是没有root权限,很多命令在使用时都需要使用命令sudo 'cmd',但系统需要user验证自己,即需要输入普通用户的密码.但普通用户是否有执行该cmd的权限,需要到系统文件/ ...
- shell-手机屏幕录制
今天在做android联系的时候,想要把自己写的demo效果记录下来.在网上发现了录制手机屏幕的方法,如下 adb shell screenrecord /sdcard/demo.mp4 解释 adb ...
- POJ3622 Gourmet Grazers(FHQ Treap)
Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 2363 Accepted: 881 Description Like s ...
- 数值溢出(arithmetic overflow)问题与解决方案
0. 典型场景 两数相加(乘法).两数相减.一个数的阶乘,一个数的幂,这些统统可能造成数值的溢出: 避免数值溢出的方法: 当把一个计算出的很大的数赋值给一个 int(2^31-1)类型变量存储时,一般 ...
- Redis原理(一)
基础和应用 1.Redis是远程调用技术的首字母缩写. 2.Redis可以用来做什么? Redis可以用来做缓存. 分布式锁 3.Redis的应用举例 记录帖子的点赞数.评论数和点击数.(使用HASH ...
- Redis的高级应用-安全性和主从复制
Redis的服务器命令和键值命令(String,Hash,List,Set,Zset)相对简单,只需查看文档即可. 文档地址: http://www.runoob.com/redis/redis-tu ...
- Maven学习总结(15)——Maven 项目中pom.xml详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2 ...
- BZOJ——T2190: [SDOI2008]仪仗队
Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 3216 Solved: 2075[Submit][Status][Discuss] http://w ...
- ArcGIS 10.5 新功能
ArcGIS 10.5正式发布,打造智能的Web GIS平台 2017年新年来临之际,ArcGIS 10.5正式发布. 历经几个版本,ArcGIS10.5已经革新为一个智能的以Web为中心的地理平台, ...