蓝桥云客--破译密码

news2025/5/11 16:50:47

5.破译密码【算法赛】 - 蓝桥云课

问题描述

在近期举办的蓝桥杯竞赛中,诞生了一场激动人心的双人破译挑战。比赛的主办方准备了N块神秘的密码芯片,参赛队伍需要在这场智力竞赛中展示团队合作的默契与效率。每个队伍需选出一位破译者与一位传输者,破译者的任务是解锁芯片中隐藏的密码,而传输者则负责将微密后的密码准确无误地发送至主办方的电脑。

在这场比赛中,小蓝与小桥组参赛,经过深入的讨论与协商,小蓝被任命为破译者,专注于解密每一块密码芯片;而小桥则担任传输者,确保每一份信息能够迅速且顺畅地传递给裁判。比赛开始后,他们迅速评估了破译与传输每一块密码芯片所需的时间:小蓝破译第i块芯片需要A1:时间,而小桥则需要B1:时间来传输第i块芯片。

此时,小蓝和小桥迫切想要计算出,在最佳的策略下,完成所有密码芯片破译与传输所需的最短时间,请你帮帮他们。

注意:只有一块芯片完成破译后才能开始传输。

输入格式

第一行输入一个整数N(1≤N≤1000)表示芯片数量。

第二行输入N个整数A1, A2, A3, ···, AN (1≤A1≤10³) 表示小蓝破译每块芯片的时间。

第三行输入N个整数B1, B2, B3, ···, BN (1≤B1≤10³) 表示小桥传输每块芯片密码的时间。

输出格式

输出一个整数表示答案。

输入样例

4
1 3 5 7
6 5 1 4

输出样例

17

说明

两人可以按照(1,2,4,3)的芯片编号顺序进行破译传输,所需时间为17。

思路:

贪心,分两类

  1. 若 x 属于 S1 组(x_s1 = true),y 必定属于 S2 组(y_s1 = false

    • 返回 true → 表示 x 应排在 y 前面。

    • 结果:S1 组的 x 排在 S2 组的 y 之前。

  2. 若 x 属于 S2 组(x_s1 = false),y 必定属于 S1 组(y_s1 = true

    • 返回 false → 表示 y 应排在 x 前面。

    • 结果:S1 组的 y 排在 S2 组的 x 之前。

代码:

#include<bits/stdc++.h>
using namespace std;
int N;
struct Node{
	int a,b;
}num[1005];
int a[1005],b[1005]; 
bool compare(const Node & x,const Node & y)
{
	bool x_s1 = (x.a <= x.b);//x是否属于s1组 
	bool y_s1 = (y.a <= y.b);//y是否属于s1组 
	 if(x_s1 != y_s1)//不同组 
	 {
	 	return x_s1;//结果都是s1组在前面 
	 }
	 else//同组 要么s1组要么s2组 
	 {
	 	if(x_s1 && y_s1)//如果同属s1 
	 	return x.a < y.a;//a升序排序 
	 	else//如果同属s2 
	 	return x.b > y.b;//b降序排序 
	 }
}
int main(void)
{
	cin >> N;
	for(int i = 1 ; i <= N ; i++)
	cin >> a[i];
	for(int i = 1 ; i <= N ; i++)
	cin >> b[i];
	for(int i = 1 ; i <= N ; i++)
	{
		num[i].a = a[i];
		num[i].b = b[i];
	}
	int sum_A = 0;
	int sum_B = 0;
	sort(num+1,num+1+N,compare);
	for(int i = 1 ; i <= N ; i++)
	{
		sum_A += num[i].a;//先计算i的结束时间,也就是开始传输的时间 
		int	cur_start = max(sum_A,sum_B);//利用最大值 
		sum_B = cur_start + num[i].b;//计算完成传输的最大时间 
	}
	cout << sum_B; 
	return 0;
 } 

#include<bits/stdc++.h>
using namespace std;
int N;
struct Node{
	int a,b;
}num[1005];
int a[1005],b[1005]; 
bool compare(const Node & x,const Node & y)
{
	return min(x.a,y.b) < min(x.b,y.a); 
}
int main(void)
{
	cin >> N;
	for(int i = 1 ; i <= N ; i++)
	cin >> a[i];
	for(int i = 1 ; i <= N ; i++)
	cin >> b[i];
	for(int i = 1 ; i <= N ; i++)
	{
		num[i].a = a[i];
		num[i].b = b[i];
	}
	int sum_A = 0;
	int sum_B = 0;
	sort(num+1,num+1+N,compare);
	for(int i = 1 ; i <= N ; i++)
	{
		sum_A += num[i].a;//先计算i的结束时间,也就是开始传输的时间 
		int	cur_start = max(sum_A,sum_B);//利用最大值 
		sum_B = cur_start + num[i].b;//计算完成传输的最大时间 
	}
	cout << sum_B; 
	return 0;
 } 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2329632.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

React-Diffing算法和key的作用

1.验证Diffing算法 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </he…

【NLP 54、大模型训练相关知识】

目录 引言&#xff1a;大模型训练两大问题 一、并行训练 1.方式一&#xff1a;数据并行 DP ① 复制模型到多个GPU ② 各自计算梯度后累加&#xff0c;再反传更新 ③ 需要单卡就能训练整个模型&#xff08;显存够大&#xff09; 2.方式二&#xff1a;模型并行 PP ① 将模型的不同…

cursor机器码重置

1、下载vscode插件 cursor-fake-machine-0.0.2 2、将插件拖入拓展 3、彻底将cursor账号退出 setting -> Manage -> 退出账号 4、打开cursor&#xff0c;ctrlshiftp &#xff0c;输入fake,点击确定

全国产FMC子卡-16bit 8通道2.4G

国产化FMC DA子卡&#xff0c;16bit 8通道2.4GS/s 全国产FMC子卡是一款高分辨率、高采样率的全国产多通道标准双宽DAC FMC子板。其接口电气和结构设计均依据FMC标准(ANSI/VITA 57.1)&#xff0c;通过两个高密度FMC连接器&#xff08;HPC&#xff09;连接至FPGA载板。它提供8路A…

fpga:分秒计时器

任务目标 分秒计数器核心功能&#xff1a;实现从00:00到59:59的循环计数&#xff0c;通过四个七段数码管显示分钟和秒。 复位功能&#xff1a;支持硬件复位&#xff0c;将计数器归零并显示00:00。 启动/暂停控制&#xff1a;通过按键控制计时的启动和暂停。 消抖处理&#…

小白 thingsboard 拆分前后端分离

1、modules 里注释掉ui_ugx <modules><module>netty-mqtt</module><module>common</module><module>rule-engine</module><module>dao</module><module>edqs</module><module>transport</module&g…

4G专网:企业数字化转型的关键通信基石

4G专网 在数字化转型的浪潮下&#xff0c;企业对高可靠性、低时延、安全可控的通信网络需求日益增长。传统的公用蜂窝网络难以满足企业在工业自动化、能源管理、智慧城市等领域的特殊需求&#xff0c;因此4G专网成为众多行业的优先选择。作为行业领先的移动核心网提供商&#x…

基于FLask的共享单车需求数据可视化分析系统

【FLask】基于FLask的共享单车需求数据可视化分析系统 &#xff08;完整系统源码开发笔记详细部署教程&#xff09;✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 该系统能够整合并处理大量共享单车使用数据&#xff0c;通过直观的可视化手段&#xff0…

STL 性能优化实战:解决项目中标准模板库的性能瓶颈

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家、全栈领域优质创作者、高级开发工程师、高级信息系统项目管理师、系统架构师&#xff0c;数学与应用数学专业&#xff0c;10年以上多种混合语言开发经验&#xff0c;从事DICOM医学影像开发领域多年&#xff0c;熟悉DICOM协议及…

ES使用聚合aggregations实战(自用:2025.04.03更新)

ES使用聚合aggregations实战 聚合模板桶聚合&#xff1a;Bucket Aggregations指标聚合&#xff1a;Metrics Aggregations管道聚合&#xff1a;Pipeline Aggregations嵌套聚合日期直方图&#xff1a;date-histogram 接口实战接口一&#xff1a;根据stu_id分组统计时间段内的各个…

AI Agent设计模式四:Evaluator

概念 &#xff1a;质量验证与反馈机制 ✅ 优点&#xff1a;自动化质量检查&#xff0c;实现持续优化闭环❌ 缺点&#xff1a;评估准确性依赖模型能力 from typing import TypedDict from langchain_openai import ChatOpenAI from langgraph.graph import StateGraph, START, …

AI绘画中的LoRa是什么?

Lora是一个多义词&#xff0c;根据不同的上下文可以指代多种事物。以下将详细介绍几种主要的含义&#xff1a; LoRa技术 LoRa&#xff08;Long Range Radio&#xff09;是一种低功耗广域网&#xff08;LPWAN&#xff09;无线通信技术&#xff0c;以其远距离、低功耗和低成本的特…

Linux网络:数据链路层以太网

目录 认识数据链路层关于以太网1. 基本概念2. 以太网帧格式3. MAC vs IP 认识数据链路层 数据链路层 位于物理层和网络层之间&#xff0c;其作用是将源自物理层来的数据可靠地传输到相邻节点的目标主机的网络层&#xff0c;主要通过物理介质(如以太网&#xff0c;Wi-Fi等)将数…

MySQL基础 [一] - 数据库基础

目录 什么是数据库 站在服务器角度理解 站在用户角度理解 为什么不直接使用文件存储呢&#xff1f; 主流数据库 MySQL的基本使用 数据库的使用样例 服务器管理 服务器数据库表之间的关系 MySQL的架构 MySQL语句分类 存储引擎 查看存储引擎 存储引擎对比 什么…

【华为OD技术面试真题 - 技术面】- Java面试题(17)

华为OD面试真题精选 专栏:华为OD面试真题精选 目录: 2024华为OD面试手撕代码真题目录以及八股文真题目录 文章目录 华为OD面试真题精选虚拟机分区1. **虚拟磁盘分区**2. **虚拟机的内存分区**3. **CPU分配**4. **虚拟网络分区**5. **存储虚拟化和分区**6. **虚拟机分区管理**…

#Linux内存管理# 在32bit Linux中,内核空间的线性映射的虚拟地址和物理地址是如何换算的?

在32位Linux系统中&#xff0c;内核空间的线性映射&#xff08;也称为直接映射或低端内存映射&#xff09;采用固定的偏移量进行虚拟地址和物理地址的换算。以下是详细的转换规则及背景知识&#xff1a; 1. 32位Linux内存布局 用户空间&#xff1a;虚拟地址 0x00000000 到 0x…

006贪心——算法备赛

跨步问题 跳跃游戏|| 问题描述 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向后跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i]i j &…

pytorch中Dropout

Dropout 是一种常用的正则化技术&#xff0c;用于防止神经网络过拟合。PyTorch 提供了 nn.Dropout 层来实现这一功能。 基本用法 torch.nn.Dropout(p0.5, inplaceFalse) 参数说明&#xff1a; p (float): 每个元素被置为0的概率&#xff08;默认0.5&#xff09; inplace (b…

【玩泰山派】2、制作buildroot镜像,并烧录

文章目录 前言制作buildroot镜像过程搭建环境&#xff08;docker版&#xff09;下载泰山派开发的sdk利用制作的镜像和下载的sdk去启动开发docker容器编译buildroot镜像 参考 前言 泰山派官方提供了不少现成的镜像 但是都买了泰山派了&#xff0c;肯定是想自己编译折腾下&…

初阶数据结构--树

1. 树的概念与结构 树是⼀种⾮线性的数据结构&#xff0c;它是由 n&#xff08;n>0&#xff09; 个有限结点组成⼀个具有层次关系的集合。把它叫做 树是因为它看起来像⼀棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;⽽叶朝下的。 有⼀个特殊的结点&#xff0c;称…