zoj3204:

最小生成树,要求最小字典序的解。

用kruscal算法,先排序,输出的时候也要排序。

 /*
zoj3204 解题思路:
赤裸裸的最小生成树。只是要求输出字典序最小的连接方案。
所以在边的排序时要注意了,有可能存在边的权值是相同的边。
所以在这种情况下,要按他们的顶点序列排序。直接把STL搬上了,很好很强大。 */
#include<iostream>
#include<cstdio>
#include<iostream>
#include <stdio.h>
#include <stdlib.h>
#include <cstdio>
#include <cstring>
#include<cmath>
#include<algorithm>
using namespace std;//这句写的时候千万别丢,不然许多函数无法使用
const int MAX=;
struct Node{
int from, to;
int w; }edge[MAX*MAX];//记录读取时边的端点和权值 Node ans[MAX*MAX];//记录构成最小生成树里面的边 (边端点)
int n;//点的个数
int fa[MAX];// 并查集的
int tol;//记录最小生成树边的个数
int cnt;//记录ans里的边的个数
void addedge(int u ,int v,int w){
edge[tol].from=u;
edge[tol].to=v;
edge[tol].w=w;
tol++; }//添加边额操作
void makeset(){
for(int i=;i<=n;i++){
fa[i]=i; } }//并查集的初始化 ,也可以直接初始化为-1
int Find(int x){
while(x!=fa[x])
x=fa[x];
return x;
}//并查集的查找操作
void uion(int x,int y){
int a=Find(x);
int b=Find(y);
if(a!=b){
ans[cnt].from=x;
ans[cnt].to=y;
cnt++;
fa[a]=b;
} }//并查集的合并操作
int cmp1(Node a,Node b){
if(a.w!=b.w)return a.w<b.w;
else {if(a.from==b.from) return a.to<b.to;
else
return a.from<b.from;
}
}//比较器首先按w从小到大排序,若w相等,则依次按照from,to进行排序 ,这是给边排序
int cmp2(Node a,Node b){ if(a.from!=b.from)return a.from<b.from;
else
return a.to<b.to;
}//这个比较器主要是给ans里面的边排序,使其按照要求输出
int main(){
int t;
scanf("%d",&t);
while(t--){
scanf("%d",&n);
tol=;
cnt=;//一定要在该处初始化tol,cnt否则会报超时的错误
makeset();
int d;
for(int i=;i<=n;i++){ for(int j=;j<=n;j++){
scanf("%d",&d);
if(j<=i)continue;
if(d==)continue;//这样读取会使避免重边的影响
addedge(i,j,d);//前面的d会被后面的覆盖 }
}
sort(edge,edge+tol,cmp1);//排序
for(int i=;i<tol;i++)
uion(edge[i].from,edge[i].to); sort(ans,ans+cnt,cmp2);
if(cnt!=n-){
printf("-1\n");
continue;}//这一步很重要,是判断能不能形成最小生成树的
else{ for(int i=;i<cnt-;i++){
printf("%d %d ",ans[i].from,ans[i].to);//注意题目给出的输出格式
}
printf("%d %d\n",ans[cnt-].from,ans[cnt-].to); }
} }

Connect them的更多相关文章

  1. Connect() 2016 大会的主题 ---微软大法好

    文章首发于微信公众号"dotnet跨平台",欢迎关注,可以扫页面左面的二维码. 今年 Connect 大会的主题是 Big possibilities. Bold technolo ...

  2. IdentityServer4 使用OpenID Connect添加用户身份验证

    使用IdentityServer4 实现OpenID Connect服务端,添加用户身份验证.客户端调用,实现授权. IdentityServer4 目前已更新至1.0 版,在之前的文章中有所介绍.I ...

  3. 2003-Can't connect to mysql server on localhost (10061)

    mysql数据库出现2003-Can't connect to mysql server on localhost (10061)问题 解决办法:查看wampserver服务器是否启动,如果没有启动启 ...

  4. Error connecting to database [Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13)]

    参照 http://stackoverflow.com/questions/4448467/cant-connect-to-local-mysql-server-through-socket-var- ...

  5. HTTP Method详细解读(`GET` `HEAD` `POST` `OPTIONS` `PUT` `DELETE` `TRACE` `CONNECT`)

    前言 HTTP Method的历史: HTTP 0.9 这个版本只有GET方法 HTTP 1.0 这个版本有GET HEAD POST这三个方法 HTTP 1.1 这个版本是当前版本,包含GET HE ...

  6. IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习保护API

    IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习之保护API. 使用IdentityServer4 来实现使用客户端凭据保护ASP.N ...

  7. Connect to the DSP on C6A8168/DM8168/DM8148 using CCS

    转自ti-wiki  这份wiki,我曾经就收藏过,但是没有加以重视,以至于绕了一大圈的ccs开发环境的配置,现在正式收藏于自己的博客中...总结良多啊 Connecting to DSP on C6 ...

  8. Action.c(58): Error -27796: Failed to connect to server "hostname"

    分析: 因为负载生成器的性能太好发数据特别快,服务器响应也特别快,从而导致负载生成器的端口在没有timeout之前就全部占满了. 解决方案一:   在负载生成器的注册表HKEY_LOCAL_MACHI ...

  9. VNC connect:Connection refused(10061)

    在Windows机器上使用VNC Viewer访问Linux服务器,有时候会遇到"connect:Connection refused(10061)"这个错误,导致这个错误出现的原 ...

  10. Oracle Connect by与递归with

    层次查询 select * from emp; select empno, ename, job, mgr, sal, deptno,level lv, sys_connect_by_path(ena ...

随机推荐

  1. 数据结构与算法/leetcode/lintcode题解

    http://algorithm.yuanbin.me/zh-hans/index.html

  2. linux 0.11 源码学习+ IO模型

    http://www.cnblogs.com/Fredric-2013/category/696688.html

  3. [置顶] String StringBuffer StringBuilder的区别剖析

    这是一道很常见的面试题目,至少我遇到过String/StringBuffer/StringBuilder的区别:String是不可变的对象(final)类型,每一次对String对象的更改均是生成一个 ...

  4. Nginx vs Apache--reference

    May 14th, 2014 - By Walker Rowe https://anturis.com/blog/nginx-vs-apache/ What is the Nginx web and ...

  5. iis6配置使用页面Gzip压缩提速

    iis7默认就启用了Gzip压缩,节约带宽,流量,能够很明显的提升访问速度,但是iis6则没有,本文就是介绍如何通过配置开启iis6的Gzip压缩 一. HTTP压缩概述 HTTP压缩是在Web服务器 ...

  6. 网站优化的经验和技巧--精简高效的C#

    对大型网站,技术涉及面非常广,对硬件,软件,编程语言,Web Service,防火墙等等有很高要求.    面对大量用户,高并发请求,可以使用高性能服务器,高性能编程语言,高性能数据库,加大带宽等,这 ...

  7. 微信上传图文消息素材40007,invalid media_id hint

    上传图文消息素材40007,invalid media_id hint,微信40007 >>>>>>>>>>>>>> ...

  8. SCIP读书笔记(1)

    这书也算是必修吧,尤其是我这种非科班人员,还是应该抽时间尽量学习一下.大致翻过一遍,习题非常多,尽力吧. ##构造过程抽象 * 为了表述认知,每种语言都提供了三种机制:基本元素:组合方式:抽象方法. ...

  9. Html+Css+Js_之table每隔3行显示不同的两种颜色

    <html> <head> <script type="text/javascript"> /** 最近因项目的需求,有这样的一个问题: 一个t ...

  10. css hack方法总结

    IE6识别:下划线 _ 和 星号 *IE7识别:星号 *IE6-IE10识别: \9 css hack方式,条件注释法<!--[if IE]>这段文字只在IE浏览器显示<![endi ...