poj 2485 (kruskal算法)
/*kruskal算法*/
#include <iostream>
//#include <fstream>
#include <algorithm>
using namespace std;
/*708K 922MS*/
typedef struct _edge
{
int x,y;
int w;
}edge; int n;
int num;
//fstream fin; void kruskal(edge *e,int len);
int cmp(const void *a,const void *b); int main()
{
//fin.open("2485.txt",ios::in);
int t;
cin>>t;
while(t--)
{
cin>>n;
edge *e=new edge[n*n];
int temp;
int len=0;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
cin>>temp;
if(temp)
{
e[len].x=i;
e[len].y=j;
e[len++].w=temp;
}
}
kruskal(e,len);
cout<<num<<endl;
delete []e;
}
system("pause");
return 0;
} int cmp(const void *a,const void * b)
{
edge *a1=(edge *)a;
edge *b1=(edge *)b;
return a1->w-b1->w;
} void kruskal(edge *e,int len)
{
qsort(e,len,sizeof(edge),cmp);
int *s=new int[n];
memset(s,0,sizeof(int)*n);
int parts=0;
int max,u,v; for(int i=0;i<len;i++)
{
u=e[i].x; v=e[i].y;
if(!s[u]&&!s[v])
{
parts++;
s[u]=parts;
s[v]=parts;
max=e[i].w;
}
else if(s[u]&&!s[v])
{
s[v]=s[u];
max=e[i].w;
}
else if(s[v]&&!s[u])
{
s[u]=s[v];
max=e[i].w;
}
else
{
if(s[v]!=s[u])
{
int temp1=s[u];
int temp2=s[v];
if(temp1>temp2)
{
temp1=s[v];
temp2=s[u];
}
//更新
for(int j=0;j<n;j++)
{
if(s[j]==temp2)
s[j]=temp1;
else if(s[j]>temp2)
s[j]--;
}
max=e[i].w;
}
}
} num=max;
}
这时间 估计倒数了!
poj 2485 (kruskal算法)的更多相关文章
- POJ 1797 kruskal 算法
题目链接:http://poj.org/problem?id=1797 开始题意理解错.不说题意了. 并不想做这个题,主要是想测试kruskal 模板和花式并查集的正确性. 已AC: /* 最小生成树 ...
- Highways - poj 2485 (Prim 算法)
Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 24383 Accepted: 11243 Description T ...
- ZOJ1372 POJ 1287 Networking 网络设计 Kruskal算法
题目链接:problemCode=1372">ZOJ1372 POJ 1287 Networking 网络设计 Networking Time Limit: 2 Seconds ...
- ZOJ 1542 POJ 1861 Network 网络 最小生成树,求最长边,Kruskal算法
题目连接:problemId=542" target="_blank">ZOJ 1542 POJ 1861 Network 网络 Network Time Limi ...
- poj 1789 Truck History(kruskal算法)
主题链接:http://poj.org/problem?id=1789 思维:一个一个点,每两行之间不懂得字符个数就看做是权值.然后用kruskal算法计算出最小生成树 我写了两个代码一个是用优先队列 ...
- POJ 1861 Network (Kruskal算法+输出的最小生成树里最长的边==最后加入生成树的边权 *【模板】)
Network Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 14021 Accepted: 5484 Specia ...
- POJ 1251 Jungle Roads - C语言 - Kruskal算法
Description The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign aid ...
- POJ 1679 The Unique MST (次小生成树kruskal算法)
The Unique MST 时间限制: 10 Sec 内存限制: 128 MB提交: 25 解决: 10[提交][状态][讨论版] 题目描述 Given a connected undirect ...
- POJ 1251 Jungle Roads(Kruskal算法求解MST)
题目: The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign aid money w ...
随机推荐
- c语言发挥帕斯卡三角
我们已经确定了帕斯卡三角的规则,下面是我的代码,非常实用哦! !! #include<stdio.h> void main() { int i,j,n,k; sca ...
- 【solr这四个主题】在Tomcat 部署Solr4.x
1.安装Tomcat (1)下载并解压缩到/opt/tomcat在 # cd /opt/jediael # tar -zxvf apache-tomcat-7.0.54.tar.gz # mv apa ...
- 使用Net.Mail、CDO组件、JMail组件三种方式发送邮件
原文:使用Net.Mail.CDO组件.JMail组件三种方式发送邮件 一.使用Net.Mail 需要服务器认证,大部分服务器端口为25. { MailMessage mailMsg = mailMs ...
- 在vi中使用perltidy格式化perl代码
格式优美的perl代码不但让人赏心悦目,并且能够方便阅读. perltidy的是sourceforge的一个小项目,在我们写完乱七八糟的代码后,他能像变魔术一样把代码整理得漂美丽亮,快来体验一下吧!! ...
- 转载:每个C++开发者都应该使用的十个C++11特性
这篇文章讨论了一系列所有开发者都应该学习和使用的C++11特性,在新的C++标准中,语言和标准库都加入了很多新属性,这篇文章只会介绍一些皮毛,然而,我相信有一些特征用法应该会成为C++开发者的日常用法 ...
- C语言JSON-RPC
近期对json-rpc比較感兴趣,思想非常easy,并且看到了非常多不同语言的实现.在github上 hmngomes 的 json-rpc-c (实现的是server端,基于TCP流),短 ...
- 【转】 Android用于提示等待的ProgressDialog
原文地址:http://blog.csdn.net/wleing/article/details/6086321 为了安抚用户等待的焦急心情,我们用ProgressDialog.它的用法书上有例子,就 ...
- MVC5搜索/查询 流程功能的实现
接着上次的篇幅,我们这篇手动来写一个查询的流程代码! 搜索/查询 流程功能的实现 那现在要做搜索(查询)功能我们第一步应该做什么呢!第一次是不是我们应该去Controller(控制器)里去搞一个搜索 ...
- Redis简介与简单安装
Redis简介与简单安装 一.NoSQL的风生水起 1.1 后Web2.0时代的发展要求 随着互联网Web2.0网站的兴起,传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类 ...
- Java基础之集合:概览
Java Basic->Collections->Overview 先抛一个问题,用一个类似树形的结构,介绍下 Java 的集合类数据结构:有哪些,从简单到复杂,有怎么样的继承关系. 下面 ...