P2330 [SCOI2005] 繁忙的都市

2024-02-01 08:28
文章标签 繁忙 都市 p2330 scoi2005

本文主要是介绍P2330 [SCOI2005] 繁忙的都市,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Problem: P2330 [SCOI2005] 繁忙的都市

文章目录

  • 思路
  • 解题方法
  • 复杂度
  • Code

思路

这是一道最小生成树(Minimum Spanning Tree)的问题。我们可以使用Kruskal算法来解决。

解题方法

首先,我们需要将所有的道路按照分值从小到大进行排序。然后,我们从分值最小的道路开始,依次判断这条道路的两个交叉路口是否已经连通。如果两个交叉路口不连通,我们就将它们连通,并将这条道路的分值作为当前的最大分值。

我们继续判断下一条分值较小的道路,直到所有的交叉路口都连通为止。最后,我们得到的最小生成树就是我们需要修建的道路,而最大分值就是我们的答案。

复杂度

时间复杂度:

O ( m l o g m + n 2 ) O(mlogm + n^2) O(mlogm+n2),其中m是道路的数量,n是交叉路口的数量。

空间复杂度:

O ( n ) O(n) O(n),用于存储并查集的父节点。

Code

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
import java.util.Arrays;public class Main {static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));static StreamTokenizer sr = new StreamTokenizer(in);static int MAXN = 310;static int MAXM = 8010;static int n, m;static int[][] edges = new int[MAXM][3];static int[] father = new int[MAXN];static void build(int n) {for (int i = 1; i <= n; i++) {father[i] = i;}}static int find(int i) {if (i != father[i]) {father[i] = find(father[i]);}return father[i];}static boolean union(int x, int y) {int fx = find(x);int fy = find(y);if (fx != fy) {father[fx] = fy;return true;}return false;}public static void main(String[] args) throws IOException {n = nextInt();m = nextInt();build(n);for (int i = 0; i < m; i++) {edges[i][0] = nextInt();edges[i][1] = nextInt();edges[i][2] = nextInt();}Arrays.sort(edges, 0, m, (a, b) -> a[2] - b[2]);int ans = 0;int edgeCnt = 0;for (int[] edge : edges) {if (union(edge[0], edge[1])) {ans = Math.max(ans, edge[2]);edgeCnt++;}if(n - 1 == edgeCnt) {break;}}out.println(n - 1 + " " + ans);out.flush();}static int nextInt() throws IOException {sr.nextToken();return (int) sr.nval;}}

这篇关于P2330 [SCOI2005] 繁忙的都市的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/666671

相关文章

P2324 [SCOI2005] 骑士精神

*原题链接* T组测试数据,每组数据给定5x5的矩阵,求将其变为目标矩阵的最小步数。 做法:IDA* 分析:看到这样的数据范围和题目描述就可以想到搜索了,由于任何时候矩阵中只有一个空格,所以我们从空格开始进行搜索,看哪个骑士能转移到这个空格上。由于步数超过15步后输出-1,所以可以迭代加深搜索,但是这样爆搜后交上去会T,所以考虑如何优化。剪枝是剪不了的(至少我没想到哪里可以剪枝),既然已经是

今天你City了吗?维乐Angel Revo带你穿梭都市自由随风~

当7月的热浪在都市中翻滚,你是否渴望逃离钢筋水泥的束缚,寻找一片属于自己的绿意盎然?今天你City了吗?快带上VELO Angel Revo一起抓住夏日的尾巴,用一场骑行与这座城市的风景共舞!      轻巧出行,City的轻盈      维乐Angel Revo坐垫,轻如鸿毛,却承载着都市骑行的所有需求。尺寸完美,净重轻盈,仿佛是为都市骑行量身定制的艺术品。无论是穿梭在繁忙的都市街道,还是悠闲地

【报告分享】2021中国都市青年生活态度调研-PCG(附下载)

摘要:近两年,消费者正在发生着结构性的变化,这种变化,不仅是年龄、地域、文化程度和收入这些物理性差异造成的,更是生活方式及意识形态等价值观差异带来的。都市青年作为消费主力军,是市场增长当之无愧的驱动力。所以,深入了解他们真实的生活态度显得尤为重要。所有的发现都在告诉着我们每一个世代都是无法复刻的,他们独一无二,他们看似相同却大不相同。他们用他们自己的解决之道解决一切。 来源:PCG

企业中各部门用户4点许可现状:部门之间不合理使用、繁忙的用户抢不到许可、某些无关人员抢占许可、某些用户长期占用许可

情景1. 企业中每个部门的预算是不一样的,在没有统一管理许可证时,各部门买各自的许可,或集中一起购买,然后再把费用平摊给各部门。 问题是许可放在同一个服务器里,每个用户都可以使用许可,但是A部门买了2套,B部门买了3套,C部门买了4套,实际使用时,有可能A部门使用了4个许可,B部门使用了2个许可,C部门使用了3个部门,那BC部门肯定就不满意了,这种情况该如何解决?分配功能可以解决此问题,将许可各自

BZOJ1085. [SCOI2005]骑士精神(IDA*算法)

Description   在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士, 且有一个空位。在任何时候一个骑士都能按照骑 士的走法(它可以走到和它横坐标相差为1,纵坐标相差为2或者横坐标相差为2,纵坐标相差为1的格子)移动到空 位上。 给定一个初始的棋盘,怎样才能经过移动变成如下目标棋盘: 为了体现出骑士精神,他们必须以最少的步 数完成任务。 Input   第一行有一个正整数T(T<

解放办公室的利器!让证卡打印机轻松应对繁忙工作场景

在现代办公室中,证卡打印机已经成为不可或缺的工作利器。但是,在繁忙的工作场景中,我们经常忽视了它的保养和清洁。然而,正确的清洁和维护不仅可以延长打印机的寿命,还可以提高工作效率,确保每一次打印都是完美的。 办公室清洁新解:轻松应对工作繁忙 全方位清洁: 证卡打印机不仅外表需要清洁,内部也同样重要。我们提供全方位的清洁方案,包括外表的擦拭和内部的彻底清洁,让您的打印机焕然一新。 高效节省

BZOJ 1088 [SCOI2005]扫雷Mine 动态规划

Description   相信大家都玩过扫雷的游戏。那是在一个n*m的矩阵里面有一些雷,要你根据一些信息找出雷来。万圣节到了 ,“余”人国流行起了一种简单的扫雷游戏,这个游戏规则和扫雷一样,如果某个格子没有雷,那么它里面的数字 表示和它8连通的格子里面雷的数目。现在棋盘是n×2的,第一列里面某些格子是雷,而第二列没有雷,如下图: 由于第一列的雷可能有多种方案满足第二列的数的限制,你的任务即

繁忙的IT基础设施可能导致安全灾难

谁不喜欢新技术?特别是当它承诺让任务变得更容易并提高生产力时。渴望增加新技术,这是IT人员经常鼓励安全领导者做的事情,导致了数字化转型,使用数字技术来解决问题。智能手机,平板电脑和云计算在工作场所的数字化改造中一直处于领先地位,但物联网(IoT)的日益普及可能会彻底改变IT基础设施的外观。      然而,对于安全人员来说,数字化转型并不是一件有趣的游戏。虽然安全团队可能喜欢新技术

微信doki送信服务器繁忙,玩转Doki小程序,获得更多打榜心跳

关注Doki有惊喜之Doki小程序终于上线啦! 在Doki小程序打榜不仅可以获得额外心跳,还可以拉群好友一起打榜,更有微信打榜提醒服务。 下面就跟Doki酱一起看看,怎样玩转Doki小程序吧~ 查看完整图片 1、如何找到doki小程序 打开微信,进入发现tab后,点击“小程序”,进入小程序页面。在顶部搜索框,搜索“腾讯视频doki”,就可以找到doki小程序。 查看完整图片查看完整图片查看完整图

无比繁忙

第一次体会到什么是充实……也许以前也有体会到过?忘了忘了。 是因为我花了一个下午的时间弄懂了cache的工作机制,还有乱七八糟的算法……《软件设计师应试教程》,第四讲。 接下来还会有两个月的这样的下午。充实的生活真美好啊。 我也终于绕了个圈圈回来了,吃饭,还是得靠这玩意。为了不让120块的报名费和120块的资料钱打了水漂,我还真不得不努点力了。