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. python 用pdb调试

    简单调试 Python 程序   在 Python 中也可以像 gcc/gdb 那样调试程序,只要在运行 Python 程序时引入 pdb 模块(假设要调试的程序名为 d.py): $ vi d.py ...

  2. hdu2011java

    多项式求和 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  3. VC++中 wstring和string的互相转换实现

    在VC++开发中,经常会用到string和wstring,这就需要二者之间的转换,项目中封装了wstring和string相互转换的2个函数,实现如下: //将wstring转换成string std ...

  4. SQL Server 2005恢复数据库详细图文教程

    不少需要用到sql2005的程序,有很多新手还是会操作,这里写个详细的图文教程送个菜鸟们,高手请飘过.适用于独立主机的朋友使用,如果你还没安装,请按照这个教程来安装 SQL Server 2005图文 ...

  5. Angular2 - Starter - Component and Component Lifecircle Hooks

    我们通过一个NgModule来启动一个ng app,NgModule通过bootstrap配置来指定应用的入口组件. @NgModule({ bootstrap: [ AppComponent ], ...

  6. JOSN对象与JSON字符串的相互转化

    前端在与服务端通信时.会与JSON JSON字符串经常打交道. 什么是JSON?  如果不太清楚可以点击这里 服务端传过来的数据一般都是一串字符串,jQuery AJAX中的success函数的第一个 ...

  7. Log4net 集成到MVC+EF框架

    前提引用Log4Net.dll文件 1. [assembly: log4net.Config.XmlConfigurator(ConfigFile = "Web.config", ...

  8. 学习java随笔第九篇:java异常处理

    在java中的异常处理和c#中的异常处理是一样的都是用try-catch语句. 基本语法如下 try { //此处是可能出现异常的代码 } catch(Exception e) { //此处是如果发生 ...

  9. windows服务启动 1053错误

    1.问题描述 今天在启动一个Windows服务时,服务启动不了,且提示:1053错误 那么是什么导致了1053错误呢? 2.他山之石 百度了一下,发现有人作出下面的解释并给出了解决方法: “常常是因为 ...

  10. EA UML 建模——类图

    Enterprise Architect(EA) 是一个功能比较强悍的建模工具,本篇文章仅使用其 UML 建模功能,其他更多功能,可以Google. 一.简单梳理C#中类与类.类与接口.接口与接口的关 ...