历届试题 国王的烦恼

【蓝桥杯】历届试题 国王的烦恼(并查集)(C++) 历届试题 国王的烦恼问题描述解题思路代码实现 问题描述 题目链接:国王的烦恼 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述   C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛。两个小岛间可能存在多座桥连接。然而,由于海水冲刷,有一些大桥面临着不能使用的危险。   如果两个小岛间的所有大桥都不能使用,则这两座小岛就不能直接到达了。然而,只要这两座小岛的居民能通过其他的桥或者其他的小岛互相到达,他们就会安然无事。但是,如果前一天两个小岛之间还 阅读详情

//N值不够大,会出现运行超时的现象

//路径未压缩,也会出现超时

//主要的思想是按天数从大到小排序,然后开始并查集运算,建立起连通性


#include<bits/stdc++.h>

using namespace std;

const int N = 100000;
struct Node{
	int u, v, day;
    bool operator <(const Node &b)const {//第一个是为了保护我们传的引用不被非法修改(传引用为了节约开销,一般的类可能比较复杂) //第二个const 是为了修饰 this 指针     
	//从大到小             
		return day > b.day;
	}
}Island[N];

int pre[N];
/*
bool cmp(Node a, Node b){
		return a.day > b.day;
}*/

void Init()
{
	for(int i=1; i<=N; i++){
		pre[i] = i;
	}
}
int Find(int a)
{
    return pre[a] == a ? a : pre[a] = Find(pre[a]);//顺带压缩路径 
}

bool Union(int a, int b)
{
    a = Find(a), b = Find(b);

    if(a == b){
        return true;
    }
    else{
        pre[a] = b;
        return false;
    }
}


int main()
{
	int n, m;
	
//	cin >> n >> m;
	scanf("%d%d", &n, &m);	
	for(int i=0; i<m; i++){
		//cin >> Island[i].u >> Island[i].v >> Island[i].day;
		scanf("%d%d%d", &Island[i].u, &Island[i].v, &Island[i].day);
	}
	
//	sort(Island, Island+m, cmp);//从day大到小排列,相当于逐渐建立起连通性 若从小到大排序,则相当于建好连通性后来破坏连通性 
	sort(Island, Island+m); 
	Init();
	
	int pretmp = -1, ans = 0;
	for (int i=0; i <m; ++i)	{
		if (!Union(Island[i].u, Island[i].v) && pretmp != Island[i].day) //两个小岛不连通,联通两个岛(因为day是从大到小的),且与上一个大桥的天数不同		
		{			
			++ans;
			pretmp = Island[i].day;		
		} 	
		
	}

	printf("%d\n", ans);
	
	return 0;
 } 

 

历届试题 国王的烦恼 (并查集) 问题描述   C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛。两个小岛间可能存在多座桥连接。然而,由于海水冲刷,有一些大桥面临着不能使用的危险。   如果两个小岛间的所有大桥都不能使用,则这两座小岛就不能直接到达了。然而,只要这两座小岛的居民能通过其他的桥或者其他的小岛互相到达,他们就会安然无事。但是,如果前一天两个小岛之间还有方法可以到达, 阅读详情

相关推荐

国王的许诺程序代码

适合学生的经典c语言程序设计语言,对刚入门的朋友有大帮助

[蓝桥杯][历届试题]国王的烦恼

时间限制: 1Sec 内存限制: 128MB 提交: 69 解决: 16题目描述C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛。两个小岛间可能存在多座桥连接。然而,由于海水冲刷,有一些大桥面临着不能使用的危险。 如果两个小岛间的所有大桥都不能使用,则这两座小岛就不能直接到达了。然而,只要这两座小岛的居民能通过其他的桥或者其他的小岛互相到达,他们就会安然无...

梦想还是要有的 334

蓝桥杯软件大赛历届试题及答案

核桃的数量 2 打印十字图 2 带分数 3 剪格子 4 错误票据 5 翻硬币 7 连号区间数 8 买不到的数目 8 大臣的旅费 9 幸运数 11 横向打印二叉树 12 危险系数 13 网络寻路 15 高僧斗法 16 格子刷油漆 17 农场阳光 18 约数倍数选卡片 18 九宫重排 19 公式求值 22 回文数字 24 国王的烦恼 25 数字游戏 27 邮局 27 城市建设 28 最大子阵 30 蚂蚁感冒 31 地宫取宝 32 斐波那契 33 波动数列 34 小朋友排队 35 分糖果 36 矩阵翻硬币 37 兰顿蚂蚁 38 01字串 2n皇后问题 安慰奶牛 摆动序列 报时助手操作格子查找整数车轮轴迹乘积最大传球游戏 传纸条 瓷砖铺放 错误票据 打印十字图 大臣的旅费 带分数 单词接龙 道路和航路 二分查找.c 翻硬币 方格取数 还有几十个列不出来了!!!!

历届试题-国王的烦恼-并查集-克鲁斯卡尔的另类使用-最大生成树

问题描述  Ç国由Ñ个小岛组成,为了方便小岛之间联络,C国在小岛间建立了米座大桥,每座大桥连接两座小岛。两个小岛间可能存在多座桥连接。然而,由于海水冲刷。,有一些大桥面临着不能使用的危险  如果两个小岛间的所有大桥都不能使用,则这两座小岛就不能直接到达了。然而,只要这两座小岛的居民能通过其他的桥或者其他的小岛互相到达,他们就会安然无事。但是,如果前一天两个小岛之间还有方法可以到达,后一天却不能到达...

memeda1141的博客 319

Apollo control模块横向控制原理及核心代码逐行解析

看完这篇文章,你会对apollo横向控制有一个整体的概念

weixin_39199083的博客 2万+

从零配置ORB-SLAM3:TUM-VI数据集yaml文件参数调优指南

本文深入解析了ORB-SLAM3在TUM-VI数据集上的yaml配置文件参数调优方法。针对双目惯性模式,详细拆解了相机标定、IMU噪声模型和ORB特征提取三大模块的关键参数,解释了其原理与影响,并通过实战案例展示了如何通过调整特征点数量、FAST阈值及IMU噪声参数,有效提升系统在低纹理环境下的鲁棒性和轨迹精度。

weixin_29071809的博客 151

NYOJ 题目925 国王的烦恼(最小生成树变形)

国王的烦恼 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述     C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛。两个小岛间可能存在多座桥连接。然而,由于海水冲刷,有一些大桥面临着不能使用的危险。如果两个小岛间的所有大桥都不能使用,则这两座小岛就不能直接到达了。然而,只要这两座小岛的居民

Jogging_Clown 1616

【学习路线】 游戏客户端开发入门到进阶

游戏开发是一个交叉性极强的技术领域,对开发者提出了高维度的要求。作为初学者,不要急于求成,打牢基础、注重原理、勤于实践,你的成长将会非常快速而稳健。希望这份学习路线与书单能为你指明方向,迈出职业开发者的第一步。

hhw_hhw的博客 2128

【蓝桥杯】 历届试题 国王的烦恼(并查集)

我们完全可以逆向思维,不去模拟桥的坏掉,而是去模拟“桥的修建”!!!这样一来我们的程序就只需要循环一次去联合(unite)这些桥,一旦出现某座桥在进行Unite操作时,该桥的Unite操作导致了其连接的两个小岛的代表元发生变化(说明该桥是一条割线),就表示这个桥的损坏会使某两个小岛的居民由前一天的互通变为后一天的不互通,也就是说需要执行一次ans++。采用这样逆向修建的思路,我们就需要将给出的测试数据由桥的使用时限进行降序排序(此时使用时间最长的就是最开始被枚举的!因为它最晚坏,所以在逆向看来它是最先修建的

酱懵静的博客 1万+

MySQL常见面试题汇总(建议收藏!!!)

目录一、索引相关(1)什么是索引?(2)索引是个什么样的数据结构呢?(3)为什么使用索引?(4)Innodb为什么要用自增id作为主键?(5)Hash 索引和 B+ 树索引有什么区别或者说优劣呢?(6)什么是聚簇索引(6)非聚簇索引一定会回表查询吗?(6)聚簇索引和非聚簇索引的区别(6)MyISAM和InnoDB实现B+树索引方式的区别是什么?(6)MySQL中有四种索引类型,可以简单说说吗?(6)覆盖索引是什么?(6)联合索引是什么?为什么需要注意联合索引中的顺序?(6)创建的索引有没有被使用到?或者说怎

蔡政洁的博客 7万+

在abaqus中利用point-based 来快捷定义螺栓连接

abaqus中可以通过point-based方式定义连接点的位置,并对连接方式进行定义,可以进行螺栓连接的模拟。 可以通过逐点输入坐标或导入外部的坐标位置 也可以通过阵列的方式定义点 定义完点后就利用create fasteners,选择point-based,选取刚才创建好的点阵列,然后定义连接的属性,如下图 定义connector section时,类型选择translator,相当于只有1方向可以动,定义弹性模量以及破坏准则。 案例操作 假如有两个板,通过...

fiber_tape的博客 7340

蓝桥杯历届试题 国王的烦恼(并查集逆序加边+结构体)

历届试题 国王的烦恼 时间限制:1.0s 内存限制:256.0MB 问题描述   C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛。两个小岛间可能存在多座桥连接。然而,由于海水冲刷,有一些大桥面临着不能使用的危险。 如果两个小岛间的所有大桥都不能使用,则这两座小岛就不能直接到达了。然而,只要这两座小岛的居民能通过其他的桥或者其他的小岛互相到达,他们就会...

城南的花 390

使用 MATLAB/Simulink 对一个开关磁阻电机进行建模

*开关磁阻电机(Switched Reluctance Motor, SRM)**是一种新型的无刷电机,以其简单的机械结构、宽广的调速范围和较高的效率在工业应用中得到了广泛关注。SRM的独特之处在于其定子和转子均为凸极结构,并且通过改变绕组电流的方向来实现转矩的产生和控制。本教程将详细介绍如何使用对一个开关磁阻电机进行建模,并探讨其基本控制策略,特别是针对双凸极结构的SRM。本文介绍了如何使用构建一个开关磁阻电机的双凸极结构模型,并探讨了其基本控制策略。

amy_mhd的博客 203

蓝桥 历届试题 国王的烦恼

  历届试题 国王的烦恼   时间限制:1.0s   内存限制:256.0MB     问题描述   C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛。两个小岛间可能存在多座桥连接。然而,由于海水冲刷,有一些大桥面临着不能使用的危险。   如果两个小岛间的所有大桥都不能使用,则这两座小岛就不能直接到达了。然而,只要这两座小岛的居民能通过其他的桥或...

Rshs 175

零基础教你学RDMA驱动开发--第8篇:队列对(QP)、完成队列(CQ)与工作请求(WR)机制剖析

本文深入剖析了RDMA(远程直接内存访问)中的核心机制:队列对(QP)、完成队列(CQ)和工作请求(WR)。QP作为通信端点包含发送队列(SQ)和接收队列(RQ);WR是用户提交的操作指令,转换为工作队列元素(WQE)后由网卡异步执行;CQ则提供完成通知机制。文章详细介绍了三者的协作原理,包括QP状态机、WR提交方式、CQ轮询机制,以及关键的信号控制技术(Signaled Mode)来优化性能。同时对比了SEND/RECV和RDMA WRITE两种模式的差异,提供了调试技巧和最佳实践。这些机制共同构成了RD

amy_mhd的博客 157

在 Fiori Elements Object Page 的表格中用 UI.Hidden 隐藏列:语义、边界与落地实践全解析

摘要: Fiori Elements的Object Page表格中,UI.Hidden注解支持静态和动态隐藏列。动态隐藏分为两种:基于父实体属性隐藏整列,或基于子实体属性按行隐藏单元格。关键约束包括:支持服务端操作的列禁止使用动态隐藏,否则会导致UX不一致。ABAP CDS不支持路径式UI.Hidden,需改用XML注解。该功能需与UI.Importance、个性化等机制明确区分,避免混淆。对于可能参与排序/过滤的列,建议仅使用静态隐藏。实际应用中需注意注解位置(整列或单元格级)和业务场景的匹配。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 205

[蓝桥杯][历届试题]国王的烦恼(反向+并查集)

问题 1435: [蓝桥杯][历届试题]国王的烦恼 时间限制: 1Sec 内存限制: 128MB 提交: 802 解决: 213 题目描述 C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛。两个小岛间可能存在多座桥连接。然而,由于海水冲刷,有一些大桥面临着不能使用的危险。 如果两个小岛间的所有大桥都不能使用,则这两座小岛就不能直接到达了。然而,只要这两座小...

starlet_kiss的博客 368

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Java实现 蓝桥杯 历届试题 国王的烦恼

问题描述   C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛。两个小岛间可能存在多座桥连接。然而,由于海水冲刷,有一些大桥面临着不能使用的危险。 如果两个小岛间的所有大桥都不能使用,则这两座小岛就不能直接到达了。然而,只要这两座小岛的居民能通过其他的桥或者其他的小岛互相到达,他们就会安然无事。但是,如果前一天两个小岛之间还有方法可以到达,后一天却不能到达...

南 墙 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

蓝桥杯 历届试题 国王的烦恼(c++)

国王的烦恼 时间限制:1.0s 内存限制:256.0MB 问题描述   C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛。两个小岛间可能存在多座桥连接。然而,由于海水冲刷,有一些大桥面临着不能使用的危险。 如果两个小岛间的所有大桥都不能使用,则这两座小岛就不能直接到达了。然而,只要这两座小岛的居民能通过其他的桥或者其他的小岛互相到达,他们就...

CrystalMii的博客 553

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: 历届试题 约数倍数选卡片
下一篇: P3368 【模板】树状数组 2(区间修改 单点查询)
KLFTESPACE
博客等级 码龄9年 66粉丝 655原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值