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

第十五届蓝桥杯大赛软件赛省赛Python 大学 C 组:6.挖矿

题目1 挖矿

小蓝正在数轴上挖矿,数轴上一共有 n 个矿洞,第 i 个矿洞的坐标为 ai。

小蓝从 0 出发,每次可以向左或向右移动 1 的距离,当路过一个矿洞时,就会进行挖矿作业,获得 1 单位矿石,但一个矿洞不能被多次挖掘。

小蓝想知道在移动距离不超过 m 的前提下,最多能获得多少单位矿石?

注意:

  • 0 坐标处的矿石视为自动获得。
  • 可能有多个矿洞位于同一坐标,这种情况下,第一次到达该坐标位置时,即可获得该坐标位置处所有矿洞的矿石。
输入格式

输入的第一行包含两个正整数 n,m,用一个空格分隔。

第二行包含 n 个整数 a1,a2,…,an,相邻整数之间使用一个空格分隔。

输出格式

输出一行包含一个整数表示答案。

数据范围

对于 20% 的评测用例, 1 ≤ n ≤ 1 0 3 1≤n≤10^3 1n103
对于所有评测用例, 1 ≤ n ≤ 1 0 5 , − 1 0 6 ≤ a i ≤ 1 0 6 , 1 ≤ m ≤ 2 × 1 0 6 1≤n≤10^5,−10^6≤ai≤10^6,1≤m≤2×10^6 1n105106ai1061m2×106

输入样例:
5 4
0 -3 -1 1 2
输出样例:
4
样例解释

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


思路

前缀和+枚举
一共分为三种情况:

  • 先向左再向右
  • 先向右再向左
  • 一直向右或向左

具体思路:

  1. 先分别计算m距离内 左边和右边含有矿的数目,大于m的也没意义了
  2. 分两边计算前缀和,表示走到某一个位置,一共采矿的数目
  3. 比如,先向左后向右,那么对于m=4,可以向左1,向右4-2*1;可以向左2,向右4-2*2,找到每一种方案的最大值,先向右后向左 同理
  4. 最后与仅仅一个方向移动进行比较

python代码

n,m=map(int,input().split())
data=list(map(int,input().split()))
l=[0]*(m+1)
r=[0]*(m+1)

ans=0
for i in data:
    if i<0 and abs(i)<=m:
        l[abs(i)]+=1
        
    elif i>0 and i<=m:
        r[i]+=1
#统计前缀和,方便计算
for i in range(1,m+1):
    l[i]+=l[i-1]
    r[i]+=r[i-1]

#先向左后向右
for i in range(1,m//2+1):#保证还能返回,去右边
    ans1=l[i]+r[m-2*i]
    ans=max(ans,ans1)


#先向右后向左
for i in range(1,m//2+1):#保证还能返回,去右边
    ans2=r[i]+l[m-2*i]
    ans=max(ans,ans2)

#一直向左或向右
ans=max(ans,l[m],r[m])
if 0 in data:#最后加上0处的矿数量,可能不为1哦
    ans+=data.count(0)   
print(ans)

        

知识点

蓝桥杯笔记:蓝桥杯备赛笔记

相关文章:

  • 微信小程序学习实录12:掌握大数据量轨迹展示的MySQL结构设计
  • 关于使用HAL_ADC_Start函数时为什么要放在while里的解释
  • CSS语言的网络编程
  • 使用私有知识库取消歧义思考
  • 云轴科技ZStack CTO王为@中国GenAI大会:AI原生实践重构AI Infra新范式
  • 简洁的 PlantUML 入门教程
  • indexedDB前端数据库存储使用
  • d202546
  • Java项目集成大模型(通译千问)
  • Python星球日记 - 第3天:运算符与表达式
  • 内存与显存:从同根生到殊途异路的科技演进
  • 机器学习新范式:Kubernetes + Kubeflow,解锁模型训练与部署的高效密码
  • Word 页眉设置(不同章节不同页眉)
  • 迭代器介绍与使用(四十一)
  • java 正则表达式优化
  • 使用SPSS进行链式中介模型分析
  • ansible可视化自动化平台-semaphore
  • 脑电学习笔记
  • 哈希表(闭散列)的实现
  • 匿名函数自调用
  • 电子工程师资格证/抖音seo怎么做的
  • 免费网站下载app软件/郑州网站建设哪家好
  • 小程序商城模板免费/西安seo建站
  • 日本网页设计网站/正规电商平台有哪些
  • 网站做整站做优化/学seo需要多久
  • 做网站建设的名声很差吗/跨境电商平台有哪些?