/*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;
}

这时间 估计倒数了!

最新文章

  1. VS2013各个版本秘钥
  2. 【POJ 2528】Mayor’s posters(线段树+离散化)
  3. WinForm------GridControl显示每行的Indicator中的行号
  4. 转 Delphi中使用FastMM4结合View CPU避免内存泄漏
  5. MapReduce简介
  6. JAVA中操作符的优先级
  7. bzoj 1576 [Usaco2009 Jan]安全路经Travel(树链剖分,线段树)
  8. rpc远程调用开发
  9. Hibernate输出SQL语句以便调试
  10. sqlserver如何启动数据库邮件
  11. [Jobdu] 题目1367:二叉搜索树的后序遍历序列
  12. Linux Ubuntu 内核升级
  13. UIButton常用属性小结(编辑中。。。)
  14. Object.prototype.toString.call()方法浅谈
  15. 【Luogu2711】小行星(网络流,最大流)
  16. 远程服务器设置Mysql的操作权限
  17. MySQL 数据库 简单操作命令 (部分总结)
  18. PythonStudy——文件操作 File operation
  19. 数据库表字段,DEFAULT NULL与NOT NULL DEFAULT
  20. js-ES6学习笔记-Generator函数的应用

热门文章

  1. select刷新后,保持选定状态,Cookies存储select选定状态信息
  2. Installshield脚本拷贝文件常见问题汇总
  3. 顶级jQuery树插件
  4. 汤姆大叔 深入理解JavaScript系列(20):《你真懂JavaScript吗?》答案详解 后六道题答案
  5. Apache无法启动解决 the requested operation has failed
  6. uploadify.js
  7. C# 以嵌入到窗体的方式打开外部exe
  8. RESTful API Develop
  9. css 初始化
  10. VS多平台开发