2024
题目描述:
- 有 n 个矿洞,坐标 -1e6 到 1e6,从坐标 0 开始每次可以往相邻位置移动一格,最多移动 m 次,问最多可以经过多少个矿洞。
数据范围:
题解:
#include<iostream>
using namespace std;
const int M = 2e6+5,Offset = 1e6;
int pre[M], n, m, ans;
inline void update(int r,int l){
ans = max(ans,pre[min(r,M-1)] - pre[max(0,l)]);
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1,j;i<=n;i++) scanf("%d",&j),++pre[j+Offset];
for(int i=0;i<M;i++) pre[i] += pre[i-1];
for(int i=0;2*i<=m;++i) update(Offset+(m-2*i),Offset-i-1);
for(int i=0;2*i<=m;++i) update(Offset+i,Offset-(m-i*2)-1);
printf("%d",ans);
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?