蓝桥云客--破译密码
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。
思路:
贪心,分两类
-
若
x属于 S1 组(x_s1 = true),y必定属于 S2 组(y_s1 = false):-
返回
true→ 表示x应排在y前面。 -
结果:S1 组的
x排在 S2 组的y之前。
-
-
若
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;}

相关文章:
蓝桥云客--破译密码
5.破译密码【算法赛】 - 蓝桥云课 问题描述 在近期举办的蓝桥杯竞赛中,诞生了一场激动人心的双人破译挑战。比赛的主办方准备了N块神秘的密码芯片,参赛队伍需要在这场智力竞赛中展示团队合作的默契与效率。每个队伍需选出一位破译者与一位传输者&#…...
量子计算与经典计算的拉锯战:一场关于计算未来的辩论
在计算科学领域,一场关于未来的激烈辩论正在上演。2025年3月,D-Wave量子公司的研究人员在《Science》杂志上发表了一项突破性成果,声称他们的量子退火处理器在几分钟内解决了一个经典超级计算机需要数百万年才能完成的复杂现实问题。这一声明…...
Java面试黄金宝典30
1. 请详细列举 30 条常用 SQL 优化方法 定义 SQL 优化是指通过对 SQL 语句、数据库表结构、索引等进行调整和改进,以提高 SQL 查询的执行效率,减少系统资源消耗,提升数据库整体性能的一系列操作。 要点 从索引运用、查询语句结构优化、数据…...
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、大模型训练相关知识】
目录 引言:大模型训练两大问题 一、并行训练 1.方式一:数据并行 DP ① 复制模型到多个GPU ② 各自计算梯度后累加,再反传更新 ③ 需要单卡就能训练整个模型(显存够大) 2.方式二:模型并行 PP ① 将模型的不同…...
cursor机器码重置
1、下载vscode插件 cursor-fake-machine-0.0.2 2、将插件拖入拓展 3、彻底将cursor账号退出 setting -> Manage -> 退出账号 4、打开cursor,ctrlshiftp ,输入fake,点击确定...
IPSG 功能协议
IPSG(IP Source Guard)即 IP 源保护,是一种基于 IP 地址和 MAC 地址绑定的安全功能,用于防止 IP 地址欺骗和非法的 IP 地址访问。以下是配置 IPSG 功能的一般步骤: 基于端口的 IPSG 配置 进入接口配置模式࿱…...
es-字段类型详解
字段类型用途示例Text全文搜索的字符串字段。json { "type": "text" }Keyword精确匹配的字符串字段。json { "type": "keyword" }Numeric数值字段(如 integer、long、float 等)。json { "type": &quo…...
音视频开发从入门到精通:编解码、流媒体协议与FFmpeg实战指南
音视频开发从入门到精通:编解码、流媒体协议与FFmpeg实战指南 音视频技术作为数字媒体领域的核心,正在成为互联网和移动应用的重要组成部分。本文将全面介绍音视频开发的学习路径,从基础概念到高级应用,从编解码原理到实战案例&a…...
《P1072 [NOIP 2009 提高组] Hankson 的趣味题》
题目描述 Hanks 博士是 BT(Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson。现在,刚刚放学回家的 Hankson 正在思考一个有趣的问题。 今天在课堂上,老师讲解了如何求两个正整数 c1 和 c2 的最大公约数…...
CSS3学习教程,从入门到精通, 化妆品网站 HTML5 + CSS3 完整项目(26)
化妆品网站 HTML5 CSS3 完整项目 下面是一个完整的化妆品网站项目,包含主页、登录页面和注册页面。我将按照您的要求提供详细的代码和注释。 1. 网站规划与需求分析 需求分析 展示化妆品产品信息提供用户注册和登录功能响应式设计,适配不同设备美观…...
全国产FMC子卡-16bit 8通道2.4G
国产化FMC DA子卡,16bit 8通道2.4GS/s 全国产FMC子卡是一款高分辨率、高采样率的全国产多通道标准双宽DAC FMC子板。其接口电气和结构设计均依据FMC标准(ANSI/VITA 57.1),通过两个高密度FMC连接器(HPC)连接至FPGA载板。它提供8路A…...
fpga:分秒计时器
任务目标 分秒计数器核心功能:实现从00:00到59:59的循环计数,通过四个七段数码管显示分钟和秒。 复位功能:支持硬件复位,将计数器归零并显示00:00。 启动/暂停控制:通过按键控制计时的启动和暂停。 消抖处理&#…...
小白 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专网 在数字化转型的浪潮下,企业对高可靠性、低时延、安全可控的通信网络需求日益增长。传统的公用蜂窝网络难以满足企业在工业自动化、能源管理、智慧城市等领域的特殊需求,因此4G专网成为众多行业的优先选择。作为行业领先的移动核心网提供商&#x…...
golang 的encoding/json包
理解 Go 语言中的 encoding/json 包 Go 语言通过 encoding/json 包提供了对 JSON 数据的强大支持,包括序列化、反序列化、自定义处理、数组处理、任意结构解析以及流式处理等。 1. 基本使用 1.1 结构体字段与 JSON 的映射 在 Go 中,结构体的字段可以…...
基于FLask的共享单车需求数据可视化分析系统
【FLask】基于FLask的共享单车需求数据可视化分析系统 (完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 该系统能够整合并处理大量共享单车使用数据,通过直观的可视化手段࿰…...
STL 性能优化实战:解决项目中标准模板库的性能瓶颈
🧑 博主简介:CSDN博客专家、全栈领域优质创作者、高级开发工程师、高级信息系统项目管理师、系统架构师,数学与应用数学专业,10年以上多种混合语言开发经验,从事DICOM医学影像开发领域多年,熟悉DICOM协议及…...
ES使用聚合aggregations实战(自用:2025.04.03更新)
ES使用聚合aggregations实战 聚合模板桶聚合:Bucket Aggregations指标聚合:Metrics Aggregations管道聚合:Pipeline Aggregations嵌套聚合日期直方图:date-histogram 接口实战接口一:根据stu_id分组统计时间段内的各个…...
AI Agent设计模式四:Evaluator
概念 :质量验证与反馈机制 ✅ 优点:自动化质量检查,实现持续优化闭环❌ 缺点:评估准确性依赖模型能力 from typing import TypedDict from langchain_openai import ChatOpenAI from langgraph.graph import StateGraph, START, …...
AI绘画中的LoRa是什么?
Lora是一个多义词,根据不同的上下文可以指代多种事物。以下将详细介绍几种主要的含义: LoRa技术 LoRa(Long Range Radio)是一种低功耗广域网(LPWAN)无线通信技术,以其远距离、低功耗和低成本的特…...
Linux网络:数据链路层以太网
目录 认识数据链路层关于以太网1. 基本概念2. 以太网帧格式3. MAC vs IP 认识数据链路层 数据链路层 位于物理层和网络层之间,其作用是将源自物理层来的数据可靠地传输到相邻节点的目标主机的网络层,主要通过物理介质(如以太网,Wi-Fi等)将数…...
Redisson使用详解
一、Redisson 核心特性与适用场景 Redisson 是基于 Redis 的 Java 客户端,提供分布式对象、锁、集合和服务,简化分布式系统开发。 典型应用场景: 分布式锁:防止重复扣款、超卖控制(如秒杀库存)。数据共享…...
MySQL基础 [一] - 数据库基础
目录 什么是数据库 站在服务器角度理解 站在用户角度理解 为什么不直接使用文件存储呢? 主流数据库 MySQL的基本使用 数据库的使用样例 服务器管理 服务器数据库表之间的关系 MySQL的架构 MySQL语句分类 存储引擎 查看存储引擎 存储引擎对比 什么…...
【华为OD技术面试真题 - 技术面】- Java面试题(17)
华为OD面试真题精选 专栏:华为OD面试真题精选 目录: 2024华为OD面试手撕代码真题目录以及八股文真题目录 文章目录 华为OD面试真题精选虚拟机分区1. **虚拟磁盘分区**2. **虚拟机的内存分区**3. **CPU分配**4. **虚拟网络分区**5. **存储虚拟化和分区**6. **虚拟机分区管理**…...
#Linux内存管理# 在32bit Linux中,内核空间的线性映射的虚拟地址和物理地址是如何换算的?
在32位Linux系统中,内核空间的线性映射(也称为直接映射或低端内存映射)采用固定的偏移量进行虚拟地址和物理地址的换算。以下是详细的转换规则及背景知识: 1. 32位Linux内存布局 用户空间:虚拟地址 0x00000000 到 0x…...
006贪心——算法备赛
跨步问题 跳跃游戏|| 问题描述 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向后跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i j] 处: 0 < j < nums[i]i j &…...
对 Python Websockets 库全方位详解
一、WebSocket 简介 WebSocket 是一种基于 TCP 的协议,支持全双工通信(服务器和客户端可以同时发送消息),适用于实时性要求高的场景(如聊天、实时数据监控、在线游戏等)。与 HTTP 不同,WebSock…...
pytorch中Dropout
Dropout 是一种常用的正则化技术,用于防止神经网络过拟合。PyTorch 提供了 nn.Dropout 层来实现这一功能。 基本用法 torch.nn.Dropout(p0.5, inplaceFalse) 参数说明: p (float): 每个元素被置为0的概率(默认0.5) inplace (b…...
【玩泰山派】2、制作buildroot镜像,并烧录
文章目录 前言制作buildroot镜像过程搭建环境(docker版)下载泰山派开发的sdk利用制作的镜像和下载的sdk去启动开发docker容器编译buildroot镜像 参考 前言 泰山派官方提供了不少现成的镜像 但是都买了泰山派了,肯定是想自己编译折腾下&…...
