蓝桥C++省赛B组--J:网络分析

蓝桥杯单片机十一届省赛_真题 | 第十一届蓝桥杯市赛C++组真题及答案 第十一届蓝桥杯青少年编程大赛市赛已经结束你是否想第一时间了解考试的题目你是否想第一时间知道自己考试的怎么样高思STEAM为大家第一时间收集C++组考试的真题以及答案真题一、选择题第一题一个C++语言的源程序中,有关主函数的说法正确的是(B)A.可以有多个主函数B.必须有一个主函数C.必须有主函数和其他函数D.可以没有主函数解析:一个源程序必须有主函数,并且只能有一个。至于其它函数,可... 阅读详情

网络分析

题目如下

试题 J: 网络分析
问题描述
时间限制: 1.0s 内存限制: 256.0MB 本题总分:25 分
【问题描述】
小明正在做一个网络实验。
他设置了 n 台电脑,称为节点,用于收发和存储数据。
初始时,所有节点都是独立的,不存在任何连接。
小明可以通过网线将两个节点连接起来,连接后两个节点就可以互相了。两个节点如果存在网线连接,称为相邻。
小明有时会测试当时的网络,他会在某个节点发送一条信息,信息会到每个相邻的节点,之后这些节点又会转发到自己相邻的节点,直到所有或间接相邻的节点都收到了信息。所有发送和接收的节点都会将信息存储一条信息只存储一次。
给出小明连接和测试的过程,请计算出每个节点存储信息的大小。
【输入格式】
输入的第一行包含两个整数 n, m,分别表示节点数量和操作数量。节1 至 n 编号。
接下来 m 行,每行三个整数,表示一个操作。
如果操作为 1 a b,表示将节点 a 和节点 b 通过网线连接起来。当 时,表示连接了一个自环,对网络没有实质影响。
如果操作为 2 p t,表示在节点 p 上发送一条大小为 t 的信息。
【输出格式】
输出一行,包含 n 个整数,相邻整数之间用一个空格分割,依次表示完上述操作后节点 1 至节点 n 上存储信息的大小。
【样例输入】

4 8
1 1 2
2 1 10
2 3 5
1 4 1
2 2 2
1 1 2
1 2 4
2 2 1
1
2
3
4
5
6
7
8
9
【样例输出】

13 13 5 3
1
【评测用例规模与约定】
对于 30% 的评测用例,1 ≤ n ≤ 20,1 ≤ m ≤ 100。
对于 50% 的评测用例,1 ≤ n ≤ 100,1 ≤ m ≤ 1000。
对于 70% 的评测用例,1 ≤ n ≤ 1000,1 ≤ m ≤ 10000。
对于所有评测用例,1 ≤ n ≤ 10000,1 ≤ m ≤ 100000,1 ≤ t ≤ 100。

对于这题我们可以用并差集来写
代码如下:

#include <iostream>
#include <vector>

using namespace std;

class union_find{
public:
	int count;			//联通分量的数量 
	vector<int> parent; 		//合并关系 
	vector<int> size;			//树的weight 
	vector<int> info;		//每个节点的消息量
	
public:
	union_find(int capacity);		//初始化
	
	void Union(int p,int q){ 		//连接节点
		int rootp = parent[p];
		int rootq = parent[q];
		if(rootp == rootq){
			return ;
		}
		if(size[rootp] > size[rootq]){			//用weight防止树失衡退化
			parent[rootq] = rootp;
			size[rootp] += size[rootq];
		}else{
			parent[rootp] = rootq;
			size[rootq] += size[rootp];
		}
		--count;
		//cout << "union successful!" << endl;
	}
	
	int find(int x){		//查找节点的父节点
		while(parent[x] != x){
			//进行路径压缩
			parent[x] = parent[parent[x]];
			x = parent[x]; 
		}
		return x;
	}
	
	/*
	int conn_cnt(){			//联通分量个数,在这题没用
		return count;
	}
	*/
	
	bool connected(int p,int q){		//判断两个节点是否联结起来了
		int rootp = find(p);
		int rootq = find(q);
		return rootp == rootq;
	}
	
	void send(int p,int t){			//题目中说的发送消息
		for(int i = 0;i < info.size();++i){
			if(connected(p,i)){
				info[i] += t;
			}
		}
		//cout << "send successful!" << endl;
	}
	
	void ans(){			//输出结果
		for(int x : info){
			cout << x << " ";
		}
	}
};

union_find::union_find(int capacity)	//初始化
{
	count = capacity;
	parent.resize(capacity);
	size.resize(capacity);
	info.resize(capacity);
	for(int i = 0;i < count;++i){
		parent[i] = i;		//父节点指向自己
		size[i] = 1;		//初始大小都是1
		info[i] = 0;		/初始都没有接收到任何信息
	}
	//cout << "初始化成功!" << endl;
}



int main(){
	int num = 0,oper =0;
	cin >> num >> oper;
	union_find uf(num);
	for(int i = 0;i < oper;++i){
		int flag = 0,a,b;
		cin >> flag >> a >> b;
		if(flag == 1){		//根据操作进行判断
			uf.Union(a - 1,b - 1);
		}else{
			uf.send(a - 1,b);
		}
	}
	uf.ans();
	
	return 0;
}

大部分细节都写在注释里,如果不了解并查集可以去搜索相关资料,b站也有并查集的视频讲解。

第十四届蓝桥杯大赛软件赛省赛(C/C++ 大学C组) 第十四届蓝桥杯大赛软件赛省赛 C/C++ 大学 C 组 阅读详情

相关推荐

蓝桥杯省赛 C/C++ ABC组题解(第四届 ~ 第十二届)

第十届蓝桥杯 题号 C++ A组 C++ B组 C++ C组 试题A 平方和 组队 求和 试题B 数列求值 年号字串 矩形切割 试题C 最大降雨量 数列求值 年号字串 试题D 迷宫 数的分解 质数 试题E RSA解密 迷宫 最大降雨量 试题F 完全二叉树的权值 特别数的和 旋转 试题G 外卖店优先级 完全二叉树的权值 外卖店优先级 试题H ...

六级不考550+不改名 1万+

2020第十一届蓝桥杯省赛B组第一场 J. 网络分析

问题描述 时间限制: 1.0s 内存限制: 256.0MB 本题总分:25 分 【问题描述】 小明正在做一个网络实验。 他设置了 n 台电脑,称为节点,用于收发和存储数据。 初始时,所有节点都是独立的,不存在任何连接。 小明可以通过网线将两个节点连接起来,连接后两个节点就可以互相了。两个节点如果存在网线连接,称为相邻。 小明有时会测试当时的网络,他会在某个节点发送一条信息,信息会到每个相邻的节点,之后这些节点又会转发到自己相邻的节点,直到所有或间接相邻的节点都收到了信息。所有发送和接收的节点都会将信息存储一

Cypresszky的博客 895

2020年第11届蓝桥杯C++B组 第一次省赛真题

试题 A: 跑步训练 答案:65 #include <bits/stdc++.h> using namespace std; int main(void) { int n = 10000, i; for (i = 0; n > 0; i++) { if (i % 2 == 0) { n -= 600; } else { n += 300; } } cout << i << endl; return

默的博客 1万+

数据结构C++语言版 -- 栈和队列

大二学生的 C++数据结构有部分Openjudge提交的代码没有删除 邮箱:liu_772021@yeah.net 欢迎交流讨论~ 有用的话,点赞留言 ``` // // main.cpp // Stack and Queue // // Created by Liu_77 on 2021/12/15. // #include <iostream> #include <cstring> using namespace std; #define MAXSIZ.

catlv77的博客 673

第十一届蓝桥杯省赛C++ B组

文章目录第十一届蓝桥杯省赛C++ B组(7.25)A:跑步训练B.纪念日C: 合并检测D: REPEAT 程序E: 矩阵F:整除序列G: 解码H: 走方格I: 整数拼接J: 网络分析 第十一届蓝桥杯省赛C++ B组(7.25) A:跑步训练 题意: 本题总分:5 分 【问题描述】 小明要做一个跑步训练。 初始时,小明充满体力,体力值计为 10000。如果小明跑步,每分钟损耗 600 的体力。如果小明休息,每分钟增加 300 的体力。体力的损耗和增加都是 均匀变化的。 小明打算跑一分钟、休息一分钟、再跑一分钟

m0_49959202的博客 3161

2020年第十一届C/C++ B组第一场蓝桥杯省赛真题

准备参加第十四届蓝桥杯,今天开始刷题目的第一天,下面是2020年第十一届C/C++ B组第一场蓝桥杯省赛真题,以下是我的做题目心得。

m0_67500944的博客 795

程序填空题

5-1 链栈入栈出栈操作。 #include<iostream> using namespace std; typedef char SElemType; typedef struct StackNode { SElemType data; struct StackNode *next; } StackNode, *LinkStack; int Push(LinkStack &S, SElemType e) { LinkStack p; p

大家一起入坑 6165

2020年 第11届 蓝桥杯 Java B组 省赛真题详解及小结【第1场省赛 2020.7.5】

一、试题 A: 解密 解法一:手工计算 解法二:编程计算 indexOf()+substring() 二、试题 B: 纪念日 解法一:使用“计算器”求解 解法二:使用“日期类”求解(SimpleDateFormat+Date) 解法三:使用“日期类”求解(Date) 三、试题 C: 合并检测 四、试题 D: 分配口罩 五、试题 E:斐波那契数列最大公约数 六、试题F: 分类计数 七、试题G: 八次求和 八、试题 H: 字符串编码 九、试题 I: BST 插入节点问题 十、试题 J 小结

upward 1万+

C/C++描述 第十一届蓝桥杯省赛 C/C++ 大学B组 第一场(2020.7.5) 试题 题目+题解

# 第十一届蓝桥杯大赛软件类省赛 C/C++ 大学 B 组 @[TOC] # 第十一届蓝桥杯大赛软件类省赛 C/C++ 大学 B 组 【考生须知】 考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试 题。 考试时间为 4 小时。考试期间选手可浏览自己已经提交的答案,被浏览的 答案允许拷贝。时间截止后,将无法继续提交或浏览答案。 对同一题目,选手可多次提交答案,以最后一次提交的答案为准。 选手必须通过浏览器方式提交自己的答案。选手在其它位置的作答或其它 方式提交的答案无效。

一起加油 2万+

2020年 第11届 蓝桥杯 C/C++ B组 省赛真题详解及小结【第1场省赛2020.7.5】【Java版】

一、试题 A: 跑步训练 方法一 方法二 二、试题 B: 纪念日 方法一:使用“计算器”求解 方法二:使用“日期类”求解(SimpleDateFormat+Date) 方法三:使用“日期类”求解(Date) 三、试题 C: 合并检测 四、试题 D: REPEAT 程序 五、试题 E: 矩阵 六、试题 F: 整除序列 解法一:ArrayList 解法二:快速位运算 七、试题 G: 解码 解法一:替换字符 解法二:boolean isDigit(char ch) 八、试题 H: 走方格 九、试题 I: 整数..

upward 6979

【并集查找 启发性合并】P8710 [蓝桥杯 2020 省 AB1] 网络分析|普及+

小明正在做一个网络实验。 他设置了 $n$ 台电脑,称为节点,用于收发和存储数据。 初始时,所有节点都是独立的,不存在任何连接。 小明可以通过网线将两个节点连接起来,连接后两个节点就可以互相通信了。两个节点如果存在网线连接,称为相邻。 小明有时会测试当时的网络,他会在某个节点发送一条信息,信息会发送到每个相邻的节点,之后这些节点又会转发到自己相邻的节点,直到所有直接或间接相邻的节点都收到了信息。所有发送和接收的节点都会将信息存储下来。一条信息只存储一次。 给出小明连接和测试的过程,请计算出每个节点

闻缺陷则喜何志丹 1700

2020第十一届7月蓝桥杯大赛软件类B组C/C++省赛题解

2020第十一届7月蓝桥杯大赛软件类B组C/C++省赛目录试题 A:跑步训练(结果填空)试题 B:纪念日(结果填空)试题 C:(结果填空)试题 D:(结果填空)试题 E:(结果填空)试题 F:(程序设计)试题 G:(程序设计)试题 H:(程序设计)试题 I:(程序设计)试题 J:(程序设计) 试题 A:跑步训练(结果填空) 题意: 代码: #include<bits/stdc++.h> #define fio ios::sync_with_stdio(false);cin.tie(0);cou

小白菜的博客 5316

【WorkBuddy】WorkBuddy 智能体快速上手:从零到一的实践指南

文章摘要: 传统自动化脚本难以应对灵活多变的自然语言需求,导致逻辑复杂、维护成本高。智能体(Agent)通过理解语义意图、动态决策和松耦合组件解决了这些问题。WorkBuddy采用声明式配置,通过可视化界面定义意图、实体和对话策略,无需编码即可快速构建智能体。其核心组件包括意图分类、实体提取、对话策略、故事样本和回退机制,适用于客服支持、知识问答等高频场景。通过环境准备(Python/Node.js/Redis)和简单配置,用户可以快速搭建可运行的智能体,显著提升自动化效率。

ruiqideng的博客 1619

[蓝桥杯 2020 省 AB1] 网络分析

小明正在做一个网络实验。他设置了n台电脑,称为节点,用于收发和存储数据。初始时,所有节点都是独立的,不存在任何连接。小明可以通过网线将两个节点连接起来,连接后两个节点就可以互相通信了。两个节点如果存在网线连接,称为相邻。小明有时会测试当时的网络,他会在某个节点发送一条信息,信息会发送到每个相邻的节点,之后这些节点又会转发到自己相邻的节点,直到所有直接或间接相邻的节点都收到了信息。所有发送和接收的节点都会将信息存储下来。一条信息只存储一次。给出小明连接和测试的过程,请计算出每个节点存储信息的大小。

no_play_no_games的博客 926

HX720数据采集实战:从硬件连接到姿态解析(含避坑指南)

本文详细介绍了HX720高精度ADC芯片在数据采集与姿态解析项目中的实战应用。内容涵盖从硬件电路设计、驱动源码编写与优化,到原始数据处理、校准以及最终姿态角度计算的完整流程,并提供了关键的避坑指南和调试技巧,帮助开发者高效完成从传感器信号到可用姿态数据的转换。

i8j9k0l1的博客 487

Halcon实战:5分钟搞定自定义直线卡尺工具(附完整代码下载)

本文详细介绍了如何使用Halcon快速开发自定义直线卡尺工具,通过交互式ROI绘制、边缘检测和直线拟合三个核心函数,实现高效工业视觉检测。文章包含完整代码下载,帮助开发者在5分钟内掌握这一实用工具的开发技巧,提升直线检测的精度和效率。

perl8的博客 248

第十一届蓝桥杯省赛第一场C/C++B组题目与个人解答

第十一届蓝桥杯省赛C/C++B组题目与个人解答)试题 A: 跑步训练试题B:纪念日试题C:合并检测试题D:REPEAT程序试题E:矩阵试题F:整除序列试题G: 解码试题H: 走方格试题 I: 整数拼接试题 J: 网络分析 试题 A: 跑步训练 本题总分:5 分 【问题描述】 小明要做一个跑步训练。 初始时,小明充满体力,体力值计为 10000。如果小明跑步,每分钟损耗 600 的体力。如果小明休息,每分钟增加 300 的体力。体力的损耗和增加都是 均匀变化的。 小明打算跑一分钟、休息一分钟、再跑一分钟、再休

Greatljc的博客 3374

虚拟机器人平台CoppeliaSim(Vrep)的逆运动学教学

相信看这篇博客的人都知道CoppeliaSim是做什么的,因此这里不多赘述。CoppeliaSim从最早的Vrep到现在已经更新了N个版本,从过去Vrep3.x开始使用的我这里小小地吐槽一下这个软件。CoppeliaSim每一个版本都有更新,问题是这些更新有时候不能向前兼容,而且时不时更新地让人不知所措(对于有紧急任务的时候真的很火大啊)。 以本文所展示地逆运动学来说,CoppeliaSim在4.0.0之后又大变,推翻了过往所有的拖动模块链接之类的构建方式,转而采用直接通过代码来实现逆运动学。 简单版逆运动

qq_39243015的博客 6698

【Java实现】第十一届蓝桥杯省赛C/C++ 大学B组 第一场(2020.7.5) 题目+题解

目录试题 A: 跑步训练试题 B: 纪念日试题 C: 合并检测试题 D: REPEAT 程序试题 E: 矩阵试题 F: 整除序列试题 G: 解码试题 H: 走方格试题 I: 整数拼接试题 J: 网络分析 大家好,我是爱做梦的鱼,我是一个大三的小菜鸡,非常向往优秀,羡慕优秀的人,已拿两个暑假offer,现在冲刺秋招,欢迎大家找我进行交流???????????? 这是我的博客地址:子浩的博客https://blog.csdn.net/weixin_43124279 本文转载自南墙 试题 A: 跑步训练

子浩的博客 9235

UDF学习(四)FLUENT UDF-DEFINE_PROFILE宏

利用DEFINE_PROFLILE可以指定以下边界或计算域信息:DEFINE_PROFILE(name,t,i)//既可以用。

weixin_44386973的博客 1806

【PG高可用】一 PostgreSQL高可用方案repmgr部署(非常详细)

repmgr安装部署

DBA之路的博客 7053

试题J: 网络分析 C++

试题J: 网络分析 时间限制: 1.0s 内存限制: 256.0MB 本题总分:25 分 【问题描述】 小明正在做一个网络实验。 他设置了n 台电脑,称为节点,用于收发和存储数据。 初始时,所有节点都是独立的,不存在任何连接。 小明可以通过网线将两个节点连接起来,连接后两个节点就可以互相通信 了。两个节点如果存在网线连接,称为相邻。 小明有时会测试当时的网络,他会在某个节点发送一条信息,信息会发送 到每个相邻的节点,之后这些节点又会转发到自己相邻的节点,直到所有直接 或间接相邻的节点都收到了信息。所有发送和

皮卡丘LIII的博客 548

基于QT+Halcon实现线序识别

一、线序识别算法步骤。 1.按照检测区域m_pItem1的外接矩形(rtBount)的大小, 截取感兴趣区域图像hRoi。 2.把截取出来的感兴趣区域图像hRoi, 分离出R、G、B三个通道hRed、hGreen、hBlue。 3.把hRed、hGreen、hBlue三个通道转换成cielab颜色空间, 得到hChannelL、hChannelA、hChannelB三个颜色图。 4.设m_pItem1的宽为iItemW, 高为iItemH. 分别申请大小为iItemW的pSumL、pSumA、pSumB内

专注现代C++实战,从核心语法到高性能编程,助力开发者深入掌握系统级编程精髓。 1748

算法学习-真题-000-第十一届蓝桥杯省赛 C/C++ 大学B组第一场-目录

算法学习-真题-000-第十一届蓝桥杯省赛 C/C++ 大学B组第一场-目录-2020-7-22 学习加"亿"点自己的理解东西和过一遍:https://blog.csdn.net/qq_43422111/article/details/107167563 目录 填空题: 编程题:

cloud 570

深度解析:Android开发工程师(嵌入式系统方向)职位 - 技术需求、面试准备与发展路径

本文深入分析了嵌入式Android开发工程师的岗位要求和技术内涵。该职位需要掌握C/C++、Linux系统编程、硬件接口等核心技术,能够进行Android系统底层定制开发,包括HAL层实现、Framework修改、性能优化等工作。文章详细解读了岗位职责,梳理了必备技术栈,提供了针对性的面试问题与参考答案,并探讨了职业发展路径。这类岗位要求开发者兼具软件工程能力和硬件基础知识,适合在智能电视、机顶盒、车载系统等嵌入式领域发展的技术人员。

郑伟强dev的专栏 134

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

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

2020蓝桥杯省赛第一场A组(C/C++)个人题解

文章目录结果填空A. 跑步训练B. 合并检测C. 分配口罩D. 矩阵E. 完美平方数程序题F. 解码G. 走方格H. 整数小拼接I. 超级胶水J. 网络分析 结果填空 A. 跑步训练 【问题】 小明要做一个跑步训练。 初始时,小明充满体力,体力值计为 10000。如果小明跑步,每分钟损耗600的体力。如果小明休息,每分钟增加 300 的体力。体力的损耗和增加都是均匀变化的。 小明打算跑一分钟、休息一分钟、再跑一分钟、再休息一分钟……如此循 环。如果某个时刻小明的体力到达0,他就停止锻炼。 请问小明在多久后停

weixin_44756457的博客 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: 二分查找笔记
下一篇: Python中二进制和浮点类型互转
binary str
博客等级 码龄8年 18粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值