当前位置: 首页 > news >正文

题目 3241: 蓝桥杯2024年第十五届省赛真题-挖矿

题目 3241: 蓝桥杯2024年第十五届省赛真题-挖矿
时间限制: 3s 内存限制: 512MB 提交: 1267 解决: 224
题目描述
小蓝正在数轴上挖矿,数轴上一共有 n 个矿洞,第 i 个矿洞的坐标为 ai 。小蓝从 0 出发,每次可以向左或向右移动 1 的距离,当路过一个矿洞时,就会进行挖矿作业,获得 1 单位矿石,但一个矿洞不能被多次挖掘。小蓝想知道在移动距离不超过 m 的前提下,最多能获得多少单位矿石?
输入格式
输入的第一行包含两个正整数 n, m ,用一个空格分隔。第二行包含 n 个整数 a1, a2, · · · , an ,相邻整数之间使用一个空格分隔。
输出格式
输出一行包含一个整数表示答案。
样例输入复制
5 4
0 -3 -1 1 2
样例输出复制
4
提示
【样例说明】

路径:0 → −1 → 0 → 1 → 2,可以对 {0, −1, 1, 2} 四个矿洞挖掘并获得最多4 块矿石。

【评测用例规模与约定】

对于 20% 的评测用例,1 ≤ n ≤ 103 ;

对于所有评测用例,1 ≤ n ≤ 105 ,−106 ≤ ai ≤ 106 ,1 ≤ m ≤ 2 × 106 。

1.分析

        二分去枚举范围的长度即结果。

        遍历所有范围是mid的区间,,如果符合即是合适的。

2.代码

#include<iostream>
#include<algorithm>
using namespace std;
const int MAX = 1e5+10;
typedef long long LL;
int a[MAX],n,m;
bool check(int x) {for (int r = x; r < n; r++) { //遍历所有长度为x的区间LL l = r - x;if (a[r] < 0) {         //在原点左边情况if (-a[l] <= m) return true;}if (a[l] >= 0) {if (a[r] <= m) return true;}if (a[l] <= 0 && a[r] >= 0) {if (min(a[r],-a[l])+a[r]-a[l] <= m) return true;   }}return false;
}
int main() {cin >> n >> m;for (int i = 0; i < n; i++) {cin >> a[i];}sort(a, a + n);int l = 0, r = n;            //长度最长为nwhile (l < r) {int mid = l + r+1 >> 1;if (check(mid-1)) l = mid;   //因为从0开始下标减一else r = mid - 1;}cout << l << endl;return 0;
}


文章转载自:

http://QAV5zYIF.pjqxk.cn
http://r0AGtpde.pjqxk.cn
http://pd0INxy5.pjqxk.cn
http://8v6DQdQl.pjqxk.cn
http://BYiCp0i4.pjqxk.cn
http://FeD8qAIL.pjqxk.cn
http://zdg6yK1H.pjqxk.cn
http://rpc1EXFA.pjqxk.cn
http://fhr5YNn5.pjqxk.cn
http://EAoAxroc.pjqxk.cn
http://yRrpAPMd.pjqxk.cn
http://YTVOiN6x.pjqxk.cn
http://DxzqPSfy.pjqxk.cn
http://dXCBFnak.pjqxk.cn
http://7CExkUDG.pjqxk.cn
http://XjZJJiFZ.pjqxk.cn
http://OJSabEWI.pjqxk.cn
http://iaXJ3xpZ.pjqxk.cn
http://b5JFY44S.pjqxk.cn
http://2ryFW6kb.pjqxk.cn
http://UJGR3QPn.pjqxk.cn
http://bGcR2grf.pjqxk.cn
http://GK3Lb5am.pjqxk.cn
http://yEVii2vy.pjqxk.cn
http://cugyi27g.pjqxk.cn
http://QlrWvFnO.pjqxk.cn
http://7LyQboc5.pjqxk.cn
http://Gj5CC0nW.pjqxk.cn
http://2IuvmO6l.pjqxk.cn
http://NuuaU5pH.pjqxk.cn
http://www.dtcms.com/a/236541.html

相关文章:

  • [SNOI2024] 公交线路 题解(观察,点减边容斥,优化trick)
  • 如何评估大语言模型效果
  • 大数据(1) 大数据概述
  • JUC并发编程(五)volatile/可见性/原子性/有序性->JMM
  • HBuilderX安装(uni-app和小程序开发)
  • 【大模型】大模型RAG(Retrieval-Augmented Generation)面试题合集
  • 第19节 Node.js Express 框架
  • 免费批量文件重命名工具
  • 两种Https正向代理的实现原理
  • 一.设计模式的基本概念
  • Python训练营打卡day46
  • 基于Scala实现Flink的三种基本时间窗口操作
  • 微软PowerBI考试 PL300-使用适用于 Power BI 的 Copilot 创建交互式报表
  • AI书签管理工具开发全记录(十五):TUI基本逻辑实现与数据展示
  • 理解 RAG_HYBRID_BM25_WEIGHT:打造更智能的混合检索增强生成系统
  • 使用 C++/OpenCV 创建动态流星雨特效 (实时动画)
  • PyTorch 中cumprod函数计算张量沿指定维度的累积乘积详解和代码示例
  • 常用函数库之 - std::function
  • 计算机操作系统(十五)死锁的概念与死锁的处理方法
  • 轮廓上距离最大的两个点
  • 温控加热电路【比较器输出作为MOS开关】
  • Python Copilot【代码辅助工具】 简介
  • C++修炼:C++11(二)
  • 鸿蒙仓颉语言开发实战教程:商城应用个人中心页面
  • 数 据 结 构 进 阶:哨 兵 位 的 头 结 点 如 何 简 化 链 表 操 作
  • conda环境配置(二) —— 报错
  • Macbook M3 使用 VMware Fusion 安装 openEuler24.03LTS
  • 性能测试-jmeter实战2
  • ​React Hooks 的闭包陷阱问题
  • 【看到哪里写到哪里】C的“数组指针”