poj 2485 Highway(Kruskal)
来源:互联网 发布:知轩藏书百度网盘 编辑:程序博客网 时间:2024/06/06 13:24
稍微变形了一下,这次是让求最小生成树中最长的那一条的长度,克鲁斯卡尔很方便的,克鲁斯卡尔就是对边进行操作
的,对边进行排序,普里姆算法是对点进行操作的,求出了每个点到其他点的距离,这道题中There is an empty line
after each test case这句话我怎么觉得它是打出一个空行呢,就是每两个例子之间用空行分开,但是加了后会PE,好
吧,可能是我理解错了吧,直接复制上题的kruskal,忘了改数组范围了,RE了一次,越来越觉得最小生成树的算法就
是一个固定的模式,没有多大的变通。。。
kruskal :
#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct{int i,j;int len;}node;int ans;node map[300000];int p[600];int cmp(const void *a,const void *b){return ((node*)a)->len-((node*)b)->len;}int find(int x){return p[x]==x?x:p[x]=find(p[x]);}void kruskal(){int sum=0;int max=0; for(int i=1;i<ans;i++){int x=find(map[i].i);int y=find(map[i].j);if(x!=y){if(map[i].len>max)max=map[i].len;p[x]=y;}}printf("%d\n",max);}int main(){int n,i,j,c,m;scanf("%d",&m);while(m--){scanf("%d",&n);ans=1;memset(map,0,sizeof(map));memset(p,0,sizeof(p));for(i=1;i<=n;i++)p[i]=i;for(i=1;i<=n;i++)for(j=1;j<=n;j++){scanf("%d",&c);if(c!=0){ map[ans].i=i; map[ans].j=j; map[ans++].len=c; }}qsort(map+1,ans-1,sizeof(map[0]),cmp);kruskal();}}
0 0
- poj 2485 Highway(Kruskal)
- poj 2485 Highway
- poj 2485 highway lightblueme
- poj 2485 Highways(Kruskal!)
- poj 2485 Highways(Kruskal)
- POJ-2485-Highways(kruskal)
- 最小生成树--highway(poj 2485);
- POJ 2485 Highways Kruskal
- poj 2485 (kruskal算法)
- poj 2485 Highways 【kruskal】
- poj 1258 (kruskal)
- POJ 2377(kruskal)
- [ACM] POJ 3485 Highway (区间选点问题)
- POJ 2485 Highways (kruskal+prim)
- poj 1861 Network (kruskal)
- poj 1287 Networking(Kruskal)
- poj 1751 Highways(Kruskal)
- POJ 1751 Highways (kruskal)
- java compare 接口
- linux文件操作
- 谁与争锋-亨利大帝(谢幕)
- 机器人向智能化的发展及其关键技术
- Android init脚本语法
- poj 2485 Highway(Kruskal)
- C printf alignment test
- MyEclipse使用时打开JSP错误
- Ping pong
- const用法
- 针对iphone5,ios7系统用户真机调试的屏幕自适应问题
- JSP&&SERVLET学习笔记(五):请求参数编码处理
- 【网络协议】互联网协议入门(一)
- 通过京东技术演进和淘宝技术演进,探察未来技术和架构