题解|2024暑期牛客多校03

【原文链接】

比赛链接:2024牛客暑期多校训练营3

A.Bridging the Gap 2

题目大意

n n n个人过河,第 i i i 个人初始有 h i h_i hi 点体力。
由于船的限制,每次过河(或返回)至少需要乘坐 l l l 人(来划船),至多可以乘坐 r r r 人,每个乘船的人都会消耗 1 1 1 点体力。体力为 0 0 0 的人无法乘船。
求对于给定的条件,是否能够使所有人过河。

解题思路

假设初始所有人在左岸,考虑一种贪心模拟的做法:

  • 从在左岸的所有人中选取 l l l 个体力最大的人划船,带 r − l r-l rl 个体力最小的人去右岸。
  • 从在右岸的所有人中选取 l l l 个体力最大的人划船返回左岸。
  • 重复以上步骤,直到所有人都到达右岸,或者无法继续。

这个过程中,除去最后一次划到右岸的 r r r 个人,每次能运输的人数为 r − l r-l rl
最低往返的次数为 t u r n = ⌈ n − r r − l ⌉ turn = \lceil \dfrac{n-r}{r-l}\rceil turn=rlnr ,且最优,因为往返越少对体力的要求越低。

对于个人,除自己前往右岸的1点体力,多余的体力可以用于划船带人,往返一次需要2点体力。
因此第 i i i 个人能够参与的往返次数为 ⌊ h i − 1 2 ⌋ \lfloor \dfrac{h_i-1}{2}\rfloor 2hi1
由于只存在 t u r n turn turn 次往返,因此第 i i i 个人能够参与的往返次数为 min ⁡ ( ⌊ h i − 1 2 ⌋ , t u r n ) \min(\lfloor \dfrac{h_i-1}{2}\rfloor,turn) min(⌊2hi1,turn)

计算所有人能够参与的往返次数之和,如果大于等于 t u r n ∗ l turn*l turnl ,则按照上述贪心模拟的方法,可以使所有人过河。

参考程序

程序是副机长根据解题思路写的,居然A了()

void solve()
{ll n,l,r; cin >> n >> l >> r;vector<ll> v(n);for(auto&x:v) cin >> x;ll turn = (n-r)/(r-l) + ((n-r)%(r-l)!=0);ll sum = 0;for(auto x:v) sum += min((x-1)/2,turn);cout << (sum>=turn*l?"Yes":"No") << endl;
}

B.Crash Test

题目大意

初始距离墙壁的距离为 d d d
每次前进有 n n n 种长度可以选择: h 1 , h 2 , ⋯ , h n h_1,h_2,\cdots,h_n h1,h2,,hn。每次前进的长度可以是任意一种长度。
如果选择的长度 h i h_i hi 大于当前与墙壁的距离 d ′ d' d ,将会退后多余的距离,即新的距离为 h i − d ′ h_i - d' hid
求在任意次(包括0次)前进后,与墙壁的最小距离。

解题思路

裴蜀定理:对于非0整数 a , b a,b a,b ,对任意整数 x , y x,y x,y g c d ( a , b ) ∣ a x + b y gcd(a,b)|ax+by gcd(a,b)ax+by 成立,即 g c d ( a , b ) gcd(a,b) gcd(a,b) 是所有 a , b a,b a,b 的线性组合中,绝对值最小的非0整数。

裴蜀定理扩展到多整数的情况仍然成立。

因此计算出 g = gcd ⁡ i = 1 n ( h i ) g=\gcd\limits_{i=1}^n(h_i) g=i=1gcdn(hi) g g g 的意义是通过对 h i h_i hi 的某种线性组合,能够得到的最小前进距离。

然后每一步视为走 g g g ,以此求得不撞墙答案 d % g d\%g d%g 与撞墙答案 g − d % g g-d\%g gd%g ,取较小值即可。

参考程序

void solve()
{ll n,d; cin >> n >> d;create_vec(v,n);ll g = v[0];for(auto x:v) g = __gcd(g,x);cout << min(d%g,g-d%g) << endl;
}

D.Dominoes!

//TODO

J.Rigged Games

//TODO

L.Sudoku and Minesweeper

题目大意

经典数独在 9 × 9 9\times 9 9×9 大小的棋盘格内进行,每一行、每一列、 9 9 9 3 × 3 3\times 3 3×3 的小方块内,数字 1 − 9 1-9 19 恰好出现一次。

扫雷是一款在棋盘格内进行的游戏,中心数字表示周围 8 8 8 格包含地雷的数量。

现给定一个 9 × 9 9\times 9 9×9 数字矩阵表示一个已经完成的合法经典数独,可以将里面的数字替换成地雷,但必须保留至少 1 1 1 个数字,求一个合法的扫雷游戏布局。

解题思路

除了边缘之外,中间 7 × 7 7\times 7 7×7 范围内必然出现数字 8 8 8
这是一个特殊的数字,只需要把它保留,其余所有数字全部替换成地雷,就是一个合法的扫雷游戏布局。

参考程序

void solve()
{vector<string> vs(9);for(auto&s:vs) cin >> s;int fl=0,i8,i8;FORLL(i,1,7){FORLL(j,1,7){if(vs[i][j]=='8'){i8=i; i8=j; fl=1; break;}} if(fl) break;}FORLL(i,0,8){FORLL(j,0,8){if(i==i8&&j==i8) cout << '8';else cout << '*';}cout << endl;}
}

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

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

相关文章

SELECT语句

SELECT语句 前言&#xff1a; 在我们MySQL中&#xff0c;数据的存储是类似于EXCEL的&#xff0c;是以表格的形式存在的&#xff0c;所以都是一行一行的数据或者是一个一个的数据。 我们可以非常形象的理解一下&#xff0c;每一**列&#xff08;column&#xff09;都是一个对象…

免费【2024】springboot 必录德健身器材用品网的设计与实现

博主介绍&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围&#xff1a;SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

使用 Docker 快速入门 RabbitMQ:安装与基本操作

引言 RabbitMQ 是一个流行的开源消息代理软件&#xff0c;它支持多种消息协议&#xff0c;并且易于部署和使用。Docker 作为一个轻量级容器化平台&#xff0c;可以简化 RabbitMQ 的安装和部署过程。本文将引导你通过 Docker 快速安装 RabbitMQ&#xff0c;并进行一些基本操作。…

在 `JDK 17` 中使用反射

在 JDK 17 中使用反射的基本步骤如下&#xff1a; 步骤一&#xff1a;导入相关类 import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Constructor;步骤二&#xff1a;获取类对象 // 通过类的全限定名获取 Class 对象 Class<?&…

性能对比:Memcached 与 Redis 的关键差异

性能对比&#xff1a;Memcached 与 Redis 的关键差异 在选择合适的缓存系统时&#xff0c;Memcached 和 Redis 是最常被提及的两种技术。它们都是内存存储系统&#xff0c;用于提高数据访问速度和应用性能。尽管它们在功能上有很多相似之处&#xff0c;但在性能、特性和应用场…

java面向对象进阶进阶篇--《包和final》

一、前言 今天还是面向对象相关知识点的分享&#xff0c;包是写小型项目时不可或缺的存在&#xff0c;final关键字用的地方不算太多。idea会提示我们导包&#xff0c;有时会自动导包&#xff0c;确实十分方便。但是我们也不能不会自己去导包。 面向对象篇不出意外的话本周就要…

22集 如何minimax密钥和groupid-《MCU嵌入式AI开发笔记》

22集 如何获取minimax密钥和groupid-《MCU嵌入式AI开发笔记》 minimax密钥获取 https://www.minimaxi.com/platform 进入minimax网站&#xff0c;注册登录后&#xff0c;进入“账户管理”&#xff0c; 然后再点击“接口密钥”&#xff0c;然后再点击“创建新的密钥”。 之…

如何使用aiohttp或requests-async等库并发地执行多个HTTP请求

在Python中&#xff0c;要并发地执行多个HTTP请求&#xff0c;可以使用aiohttp这样的异步HTTP客户端库&#xff0c;因为它支持异步编程&#xff0c;能够显著提高IO密集型任务的性能&#xff0c;比如网络请求。requests-async并不是一个广泛认知的库&#xff08;虽然可能存在类似…

《0基础》学习Python——第十九讲__爬虫/<2>

一、用get请求爬取一般网页 首先由上节课我们可以找到URL、请求方式、User-Agent以及content-type 即&#xff1a;在所在浏览器页面按下F12键&#xff0c;之后点击网路-刷新&#xff0c;找到第一条双击打开标头即可查看上述所有内容&#xff0c;将上述URL、User-Agent所对应的…

1.6、计算机系结构

Flynn分类法 Flynn分类法是1966年&#xff0c;M. J. Flynn提出的根据指令流、数据流的多倍性特征对计算机系统的分类方法。 指令流为机器执行的指令序列。数据流是由指令调用的数据序列。包括输入数据和中间结果&#xff0c;不包括输出数据 分类 Flynn把计算机系统的结构分…

初学MWA(Modern Web App)那些事-3-做一个简单的计算器

初学MWA(Modern Web App&#xff09;那些事-3-做一个简单的计算器 目录 初学MWA(Modern Web App&#xff09;那些事-3-做一个简单的计算器前言一、本节学习目标二、计算器实例项目创建过程2.1 创建一个HTML文档2.2 查看新建的html文档2.3 Web应用开发&#xff1a;初始化设置2.4…

linux C++ onnxruntime yolov8 视频检测Demo

linux C onnxruntime yolov8 视频检测Demo 目录 项目目录 效果 ​编辑CMakeLists.txt 代码 下载 项目目录 效果 ./yolov8_demo --help ./yolov8_demo -c2 -ptrue ./yolov8_demo -c1 -strue CMakeLists.txt # cmake needs this line cmake_minimum_required(VERSION 3…

AMD EPYC处理器性能宣称远超Nvidia Grace CPU

AMD近期发布了一份博客文章&#xff0c;其中对比了其EPYC处理器与Nvidia Grace Hopper Superchip&#xff08;基于Arm架构的72核CPU&#xff09;在一系列基准测试中的性能&#xff0c;声称EPYC处理器在多种工作负载下的表现最多可高出两倍。这一比较突显了AMD在数据中心CPU市场…

Covalent(CXT)运营商网络规模扩大 42%,以满足激增的需求

Covalent Network&#xff08;CXT&#xff09;是领先的人工智能模块化数据基础设施&#xff0c;网络集成了超过 230 条链并积累了数千名客户&#xff0c;目前 Covalent Network&#xff08;CXT&#xff09;网络迎来了五位新运营商的加入&#xff0c;包括 Graphyte Labs、PierTw…

使用PicGo操作gitee图床(及web端html不能访问图片的解决办法)

1.新建仓库 2.输入仓库名称,也就是图床名称,必须设置开源可见 也可以在创建仓库后,点击管理->基本信息->是否开源进行设置 鼠标悬浮到右上角头像->设置 点击私人令牌 点击生成新令牌,填写描述,直接点提交即可 点击提交后输入登录密码会生成一个token秘钥,如下,这个…

【C++】——初识模版

文章目录 前言函数模版函数模版的原理函数模版的实例化 类模版类模版的实例化 前言 当我们使用一个通用的函数&#xff1a; //为每一个类型都编写一个重载版本 void Swap(int& left, int& right) {int temp left;left right;right temp; } void Swap(double& …

【Linux】执行命令提示:-bash: !@#‘“: event not found

问题描述 在Linux下执行命令时&#xff0c;提示&#xff1a;-bash: xxx event not found&#xff0c;是因为一些特殊字符无法&#xff0c;无法识别 博主是在使用Docker启动xxl-job-admin时&#xff0c;由于设置的-e 数据库密码参数时&#xff0c;存在特殊字符&#xff0c;导致…

在Linux、Windows和macOS上释放IP地址并重新获取新IP地址的方法

文章目录 LinuxWindowsmacOS 在Linux、Windows和macOS上释放IP地址并重新获取新IP地址的方法各有不同。以下是针对每种操作系统的详细步骤&#xff1a; Linux 使用DHCP客户端&#xff1a;大多数Linux发行版都使用DHCP&#xff08;动态主机配置协议&#xff09;来自动获取IP地址…

七、系统配置与性能评价(考点篇)

1 性能指标 性能指标&#xff0c;是软、硬件的性能指标的集成。在硬件中&#xff0c;包括计算机、各种通信交换设备、各类网 络设备等&#xff1b;在软件中&#xff0c;包括&#xff1a;操作系统、协议以及应用程序等。 1.计算机 对计算机评价的主要性能指标有&#xff1a; 时…

【嵌入式开发之数据结构】树的基本概念、逻辑结构和四种常用的遍历算法及实现

树&#xff08;Tree&#xff09;的定义及基本概念 树的定义 树(Tree)是个结点的有限集合T&#xff0c;它满足两个条件&#xff1a; 有且仅有一个特定的称为根&#xff08;Root&#xff09;的节点&#xff1b;其余的节点分为个互不相交的有限合集&#xff0c;其中每一个集合又…