CCF-CSP题解 201412-4 最优灌溉
\(kruskal\),有兴趣\(heap\_prim\)。\(stl\ pq\)实现复杂度相同。
#include <bits/stdc++.h>
using namespace std;
struct tEdge {
int a, b, c;
bool operator < (const tEdge &y) const {
return c < y.c;
}
};
tEdge edge[100005];
int fa[1005];
int father(int x) {return (fa[x] == x) ? x : (fa[x] = father(fa[x]));}
bool combine(int x, int y) {
int fx = father(x), fy = father(y);
if (fx != fy) {fa[fx] = fy; return true;}
return false;
}
int main() {
int n, m;
scanf("%d%d", &n, &m);
for (int i = 0; i < m; ++i) scanf("%d%d%d", &edge[i].a, &edge[i].b, &edge[i].c);
sort(edge, edge + m);
for (int i = 1; i <= n; ++i) fa[i] = i;
int ans = 0;
for (int i = 0, k = 0; k < n - 1; ++i)
if (combine(edge[i].a, edge[i].b) == true) {++k; ans += edge[i].c;}
printf("%d", ans);
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int to[200005], nex[200005], w[200005], head[1005], cnt;
void addEdge(int a, int b, int c) {
to[cnt] = b; nex[cnt] = head[a]; w[cnt] = c; head[a] = cnt++;
to[cnt] = a; nex[cnt] = head[b]; w[cnt] = c; head[b] = cnt++;
}
struct tNode {
int id, dis;
tNode(int i, int d) : id(i), dis(d) {}
bool operator < (const tNode &y) const {
return dis > y.dis;
}
};
int done[1005], dis[1005];
int heap_prim() {
memset(done, 0, sizeof(done));
memset(dis, 0x3f, sizeof(dis));
int ans = 0;
priority_queue<tNode> que;
dis[1] = 0;
que.push(tNode(1, 0));
while (!que.empty()) {
tNode x = que.top(); que.pop();
if (done[x.id]) continue;
ans += x.dis;
done[x.id] = 1;
dis[x.id] = 0;
for (int i = head[x.id]; i != -1; i = nex[i]) {
int l = to[i];
if (dis[l] > w[i]) {
dis[l] = w[i];
que.push(tNode(l, dis[l]));
}
}
}
return ans;
}
int main() {
int n, m;
scanf("%d%d", &n, &m);
memset(head, -1, sizeof(head));
cnt = 0;
for (int _ = 0, a, b, c; _ < m; ++_) {
scanf("%d%d%d", &a, &b, &c);
addEdge(a, b, c);
}
printf("%d", heap_prim());
return 0;
}
CCF-CSP题解 201412-4 最优灌溉的更多相关文章
- CCF CSP 201412-4 最优灌溉
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201412-4 最优灌溉 问题描述 雷雷承包了很多片麦田,为了灌溉这些麦田,雷雷在第一个麦田挖 ...
- CCF CSP 201409-4 最优配餐
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201409-4 最优配餐 问题描述 栋栋最近开了一家餐饮连锁店,提供外卖服务.随着连锁店越来越 ...
- CCF系列之最优灌溉(201412-4)
试题编号:201412-4试题名称:最优灌溉时间限制: 1.0s内存限制: 256.0MB 问题描述 雷雷承包了很多片麦田,为了灌溉这些麦田,雷雷在第一个麦田挖了一口很深的水井,所有的麦田都从这口井来 ...
- CCF 201412-4 最优灌溉
问题描述 试题编号: 201412-4 试题名称: 最优灌溉 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 雷雷承包了很多片麦田,为了灌溉这些麦田,雷雷在第一个麦田挖了一口很 ...
- CCF模拟题 最优灌溉
最优灌溉 时间限制: 1.0s 内存限制: 256.0MB 问题描述 雷雷承包了很多片麦田,为了灌溉这些麦田,雷雷在第一个麦田挖了一口很深的水井,所有的麦田都从这口井来引水灌溉. 为了灌溉,雷雷需 ...
- CCF CSP 201312-3 最大的矩形
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201312-3 最大的矩形 问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i( ...
- CCF CSP 201403-4 无线网络
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201403-4 无线网络 问题描述 目前在一个很大的平面房间里有 n 个无线路由器,每个无线路 ...
- CCF CSP 201604-4 游戏
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201604-4 游戏 问题描述 小明在玩一个电脑游戏,游戏在一个n×m的方格图上进行,小明控制 ...
- CCF CSP 201703-3 Markdown
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201703-3 Markdown 问题描述 Markdown 是一种很流行的轻量级标记语言(l ...
- CCF CSP 201609-3 炉石传说
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201609-3 炉石传说 问题描述 <炉石传说:魔兽英雄传>(Hearthston ...
随机推荐
- 手把手带你一键部署 Kubernetes + KubeSphere 至 Linux
本文介绍一个最快安装 Kubernetes 和体验 KubeSphere 核心功能的方式,all-in-one 模式可一键安装 Kubernetes v1.15.5 和 KubeSphere 至一台 ...
- SpringSecurity动态加载用户角色权限实现登录及鉴权
很多人觉得Spring Security实现登录验证很难,我最开始学习的时候也这样觉得.因为我好久都没看懂我该怎么样将自己写的用于接收用户名密码的Controller与Spring Security结 ...
- 常见 MIME 类型列表(转)
本文转自:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MI ...
- setBounds方法,与setLayout(null)
首先把相关容器的布局方式设为 setLayout(null); 然后调用组件的 setBounds() 方法 设置button的位置为(100,100) 长宽分别为 60,25 jButton.se ...
- String类对象两种实例化方式比较
第一种:直接赋值 String str = "hello!" ; 在java中,有一个字符串常量池,对于这种直接赋值的,会直接写进常量池(常量池里面不存在其value,) 自JD ...
- 在React项目中添加ESLint
1. 安装eslint npm install eslint --save-dev // 或者 yarn add eslint --dev 2. 初始化配置文件 npx eslint --init / ...
- C语音I博客作业09
------------恢复内容开始------------ 这个作业属于那个课程|C语言程序设计II --|:--:|--: 这个作业要求在哪里|https://edu.cnblogs.com/ca ...
- Spring IOC容器装配Bean_基于XML配置方式
开发所需jar包 实例化Bean的四种方式 1.无参数构造器 (最常用) <?xml version="1.0" encoding="UTF-8"?> ...
- ThreadLocal 源码解读
一.引入 public class Thread implements Runnable { /* 前面略 */ /* ThreadLocal values pertaining to this th ...
- 优雅解决 SpringBoot 工程中多环境下 application.properties 的维护问题
微信号:geekoftaste, 期待与大家一起探讨! 背景 我们知道 SpringBoot 有一个全局的配置文件 application.properties, 可以把工程里用到的占位符,第三方库的 ...