洛谷P1546 最短网络 Agri-Net(最小生成树,Kruskal)
最小生成树模板题。
直接使用 Kruskal 求解。
复杂度为 \(O(E\log E)\) 。
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int maxn = 105 * 105;
int n, x, tot, ans, f[105];
struct edge{
    int from, to, w;
    bool operator < (const edge & _edge) const {
        return w < _edge.w;
    }
}e[maxn];
void init(){
    for(int i = 1; i <= n; i++) f[i] = i;
}
int father(int x){
    if(f[x] != x){
        f[x] = father(f[x]);
    }
    return f[x];
}
void _union(int a, int b){
    int fa = father(a), fb = father(b);
    f[fa] = f[fb];
}
int ok(int a, int b){
    int fa = father(a), fb = father(b);
    return fa == fb ? 1 : 0;
}
int main()
{
    scanf("%d", &n);
    for(int i = 1; i <= n; i++){
        for(int j = 1; j <= n; j++){
            scanf("%d", &x);
            if(i < j){
                tot++;
                e[tot].from = i; e[tot].to = j; e[tot].w = x;
            }
        }
    }
    init();
    int m = n * (n - 1) / 2;
    int cnt = 0;
    sort(e + 1, e + 1 + m);
    for(int i = 1; i <= m; i++){
        if(!ok(e[i].from, e[i].to)){
            ans += e[i].w;
            _union(e[i].from, e[i].to);
            cnt++;
            if(cnt == n - 1) break;
        }
    }
    printf("%d\n", ans);
    return 0;
}
												
											洛谷P1546 最短网络 Agri-Net(最小生成树,Kruskal)的更多相关文章
- 洛谷 P1546 最短网络 Agri-Net(最小生成树)
		
嗯... 题目链接:https://www.luogu.org/problemnew/show/P1546 首先不难看出这道题的思想是用了最小生成树,但是这道题有难点: 1.读题读不明白 2.不会读入 ...
 - 洛谷 P1546 最短网络 Agri-Net
		
题目链接 https://www.luogu.org/problemnew/show/P1546 题目背景 农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场.当 ...
 - 洛谷P1546 最短网络 Agri-Net
		
P1546 最短网络 Agri-Net 526通过 959提交 题目提供者JOHNKRAM 标签图论贪心USACO 难度普及/提高- 提交该题 讨论 题解 记录 最新讨论 50分C++代码,求解 请指 ...
 - 洛谷——P1546 最短网络 Agri-Net
		
P1546 最短网络 Agri-Net 题目背景 农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场.当然,他需要你的帮助. 题目描述 约翰已经给他的农场安排了一 ...
 - 洛谷 P1546 最短网络 Agri-Net Label:Water最小生成树
		
题目背景 农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场.当然,他需要你的帮助. 题目描述 约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其 ...
 - 洛谷 P1546 最短网络 Agri-Net(最小生成树)
		
题目链接 https://www.luogu.org/problemnew/show/P1546 说过了不复制内容了 显然是个最小生成树. 解题思路 prim算法 Kruskal算法 prim算法很直 ...
 - 洛谷1546 最短网络Agri-Net【最小生成树】【prim】
		
[内含最小生成树Prim模板] 题目:https://www.luogu.org/problemnew/show/P1546 题意:给定一个邻接矩阵.求最小生成树. 思路:点少边多用Prim. Pri ...
 - 洛谷 P1546 最短网络 Agri-Net    x
		
题目背景 农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场.当然,他需要你的帮助. 题目描述 约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其 ...
 - 洛谷P1546 最短网络 Agri-Net(Prim堆优化)
		
#include<bits/stdc++.h> using namespace std; ; const int INF=0x3f3f3f3f; inline void read(int ...
 
随机推荐
- spring Cloud 之 Eureka、Feign、Hystrix、Zuul、Config、Bus
			
一.服务发现——Netflix Eureka Eureka包含两个组件: Eureka Server和Eureka Client 1.创建Eureka Server服务端 (1).引入依赖 父工程po ...
 - Tensorflow实战(二):Discuz验证码识别
			
一.前言 验证码是根据随机字符生成一幅图片,然后在图片中加入干扰象素,用户必须手动填入,防止有人利用机器人自动批量注册.灌水.发垃圾广告等等 . 验证码的作用是验证用户是真人还是机器人. 本文将使用深 ...
 - spring boot 将对象转换为json返回
			
Spring Boot默认使用Jackson将对象转换为json,需要配置以下依赖: compile group: 'com.fasterxml.jackson.core', name: 'jacks ...
 - 总结:String类型与Int类型的转换【实现插入操作主键自增】
			
1.String类型(此类型是数字格式的字符串类型)转换成Int类型 String str = "10000"; 转换成Int类型: int num = Integer.parse ...
 - winCE/Windows 应用程序消息提示框自动消失功能
			
近期在做winCE系统的扫描枪应用程序,遇到了一些问题,其中包括消失提示框在手持终端显示过小, 用户要求提示框提示几秒后自动关闭,Windows平台可以通过调用系统API以定时器的方式进行自动销毁. ...
 - [2019杭电多校第七场][hdu6656]Kejin Player
			
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6656 题意为从i级花费a元有p的概率升到i+1级,有1-p的概率降到x级(x<i),查询从L级升 ...
 - 攻防世界--key
			
测试文件:https://adworld.xctf.org.cn/media/task/attachments/c6cf449ae4b7498eba5027c533386a40.exe 1.准备 获取 ...
 - ulimit 管理系统资源
			
具体的 options 含义以及简单示例可以参考以下表格. 选项 含义 例子 -H 设置硬资源限制,一旦设置不能增加. ulimit – Hs 64:限制硬资源,线程栈大小为 64K. -S 设置软资 ...
 - 好玩的Linux命令-1
			
Ag:比grep.ack更快的归递搜索文件内容 1:首先在linux创建个sh文件->ag.sh 2:在ag.sh里面输入如下内容并保存 #!/bin/bash set -x TEMP_DIR= ...
 - ElasticSearch基本概念阐述
			
下面阐述一下ES当中的一些常见词语含义: 集群 集群由一个或多个节点组成,对外提供服务,索引和搜索功能.在所有的节点中,一个集群有一个唯一的名称默认为“ElasticSearch”,此名称很重要,因为 ...