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

企业营销的网站东莞美容网站建设

企业营销的网站,东莞美容网站建设,合肥seo网站推广费用,网站建设课程设计实训总结【蓝桥杯 2024 省 C】挖矿 蓝桥杯专栏:2024 省 C 算法竞赛:技巧,前缀和,双指针,贪心 题目链接:洛谷【蓝桥杯 2024 省 C】挖矿 题目描述: 小蓝正在数轴上挖矿,数轴上一共有 nnn 个矿洞…

【蓝桥杯 2024 省 C】挖矿


蓝桥杯专栏:2024 省 C
算法竞赛:技巧,前缀和,双指针,贪心
题目链接:洛谷【蓝桥杯 2024 省 C】挖矿

题目描述:
小蓝正在数轴上挖矿,数轴上一共有 nnn 个矿洞,第 iii 个矿洞的坐标为 aia_iai。小蓝从 000 出发,每次可以向左或向右移动 111 的距离,当路过一个矿洞时,就会进行挖矿作业,获得 111 单位矿石,但一个矿洞不能被多次挖掘。小蓝想知道在
移动距离不超过 mmm 的前提下,最多能获得多少单位矿石?

输入格式:
输入的第一行包含两个正整数 n,mn,mn,m,用一个空格分隔。
第二行包含 nnn 个整数 a1,a2,⋯,ana_1, a_2,\cdots, a_na1,a2,,an,相邻整数之间使用一个空格分隔。
输出格式:
输出一行包含一个整数表示答案。

数据范围:
对于 20%20\%20% 的评测用例,1≤n≤1031 \le n \le 10^31n103
对于所有评测用例,1≤n≤1051 \le n \le 10^51n105−106≤ai≤106-10^6 \le a_i \le 10^6106ai1061≤m≤2×1061 \le m \le 2 \times 10^61m2×106


题目大意

小蓝初始时在原点处,他可以在一维数轴上左右行走,数轴上某个位置处有一个或多个矿洞,每路过一个矿洞就会获得 111 单位矿石,求在移动距离不超过 mmm 的前提下,最多能获得多少单位的矿石。

题目分析

初看有点像区间 DP 问题,然而这比区间 DP 问题简单得多,因为这个问题只有路程这一个限制条件,根据贪心,我们很容易知道,必定存在某种能达到矿石数量最多的方案是先沿某个方向走一定距离然后停止移动或返回原点再向另一个方向走一定距离。

那我们就可以在走过 1∼m1\sim m1m 的每个距离时让小蓝掉头向另一个方向走,这样可以在 O(n)\mathcal{O}(n)O(n) 的时间复杂度内将问题求解出来。

为了确保能在 O(1)\mathcal{O}(1)O(1) 的时间复杂度内知道在 1∼i1\sim i1i−i∼−1-i\sim -1i1 上有多少个矿洞,我们可以使用前缀和的方法预处理出来在两个方向上的矿洞数量前缀和。

我们令左指针 lll 在原点或负半轴上,右指针 rrr 在原点或正半轴上,根据上文所述在某个方向走的距离发生改变,另一个方向上能走的距离也必然发生改变,则可以枚举指针变化情况求解,这里用到了双指针的思想,但具体实现可以不将双指针体现出来。

题目实现

根据上述分析,程序过程如下:

  1. 读入矿洞坐标,在正半轴和负半轴的分别用两个数组记录,在原点的用变量计数即可;
  2. 预处理两个方向上的矿洞数量的前缀和;
  3. 枚举距离 1∼m1\sim m1m,分别求先向负半轴再向正半轴走和先向正半轴再向负半轴走两种情况,每个距离,每种情况取最大值,最终结果还要加上在原点的矿洞。

AC Code

参考代码(C++):

#include <bits/stdc++.h>
using namespace std;
const int N = 2e6+10;
int a[N],b[N],ans,num;
int main()
{int n,m;scanf("%d%d",&n,&m);for (int i=0;i<n;i++){int x;scanf("%d",&x);if (x>0) a[x]++;else if (x<0) b[-x]++;else num++;}for (int i=1;i<=m;i++)a[i]+=a[i-1],b[i]+=b[i-1];for (int i=1;i<=m;i++){int cnt=a[i];if (m-i*2>0) cnt+=b[m-i*2];ans=max(ans,cnt);cnt=b[i];if (m-2*i>0) cnt+=a[m-i*2];ans=max(ans,cnt);}printf("%d",ans+num);return 0;
}

End

感谢观看,如有问题欢迎指出。

更新日志

  1. 2025/8/24 开始书写本篇 CSDN 博客,并完稿发布。
http://www.dtcms.com/a/529964.html

相关文章:

  • 重庆游戏网站开发公司江苏免费建站
  • 怎么自己做网站吓别人wordpress 按时间倒序
  • 海口网站建设公司专业做网站
  • 平原做网站浙江网站建设cms
  • 做网站的问卷调查网络规划设计师待遇怎么样
  • vs2015 网站开发教程城乡建设官方网站
  • flashfxp怎么上传对应网站空间黑河做网站的
  • h5响应式网站制作装网要多少钱
  • 腾讯快速建站平台seo站内优化和站外优化
  • 晋城龙采网站建设做外贸的专业网站
  • git 修改commit信息以及提交
  • 网站建设不包括哪个阶段wordpress中文企业主题 下载地址
  • BabybloomSG项目RAG系统优化与多模型对比分析报告
  • 网站优化排名的方法外贸订单网站有哪些
  • 找外包做网站如何免费制作app
  • 小迪安全v2023学习笔记(一百三十八讲)—— Linux系统权限提升内核溢出辅助项目VulnhubDcowPwnkitDirt
  • 网站快速收录付费入口企业网站制作比较好的
  • 开创网站要怎么做微信公众号绑定网站
  • 深圳 汽车网站建设江苏省建设考试信息管理系统网站
  • “人可以向前走“与“空间是螺旋运动的“并不矛盾——时空螺旋运动与局部运动的统一:基于张祥前统一场论的完备推导
  • 可以做软件外包项目的网站电子商务网站建设ppt模板
  • 有哪些可以做课件赚钱的网站平面设计风格有哪些类型
  • 个人房源网seo专员
  • 网站图片怎么换南昌建设局网站查询塔吊证
  • 不记得在哪里做的网站备案上海上市公司100强
  • Codeforces 1060 Div2(ABC1C2D)
  • 代码随想录 617.合并二叉树
  • 上贵州省建设厅的网站深圳网站制作公司讯
  • 为什么要做一个营销型网站揭阳网站制作软件
  • 集团网站设计特性怎样将网站建设后台装到云上