大连大学2022年11月程序设计竞赛(同步赛) 原创F题题解


 

题目描述

甜美镜头  竟也落花一样飘落下来
从此  我的生命  变成了尘埃
寂寞的人  总是习惯寂寞的安稳
至少  我们直线  曾经交叉过
enterdawn现在站在高度为xm的烈日骄阳大桥上,顿时,enterdawn的视线,失去了色彩。
我们知道enterdawn一样不善于表白,所以他想要接住那一个个的甜美镜头,来帮助他的视线恢复色彩。
只要enterdawn的视线和逐渐落下的甜美镜头交叉,他就能接住落下的甜美镜头,但是,由于enterdawn沉浸在回忆中,所以他不想向下看,只能平视和仰视。甜美镜头的下落速度为1m/s,enterdawn每秒只能接住一个甜美镜头。
请输出enterdawn能接住最多甜美镜头的数量。
本题为多组测试样例。

输入描述:

第一行为一个整数t(1≤t≤1000),表示样例的组数。
接下来的每组数据,
第一行为两个整数x,n(0<x,n≤1⋅10^5),分别表示enterdawn的高度和镜头的数量。
第二行为n个整数,表示0时刻所有镜头的高度(1≤h≤1∗10^5)。
所有样例的n的总和不超过5⋅10^3。

输出描述:

输出一个整数,表示enterdawn接住最多甜美镜头的数量。

示例1

输入

1
5 5
9 8 8 5 5

输出

4

说明

镜头下落的方式“瞬移”,即0-1s不动,在1s向下瞬移1m,所以enterdawn能接住一个高度5m的镜头。
对于题给样例:
在0-1秒时,镜头高度分别为9 8 8 5 5,enterdawn接住了一片高度在5m的镜头。
在1-2秒时,镜头高度分别为8 7 7,enterdawn接住了一片高度在7m的镜头。
在2-3秒时,镜头高度分别为7 6,enterdawn接住了一片高度在6m的镜头。
在3-4秒时,镜头高度分别为6,enterdawn接住了一片高度在6m的镜头。
总计接住4个镜头。

这道题目也适合用双指针+sort排序来做

以下为本人题解:

#include<bits/stdc++.h>
using namespace std;

const int N=10;
int n,op,t;

int main()
{
     cin >> t;
     while(t--)
     {
       int x,cnt=0,cnt1=0;
       int a[5005],b[5005];
       cin >>x >> n;
      
       for(int i=0;i<n;i++)
       {
           cin >> a[i];
       }
       sort(a,a+n);
       int j=0;
       for(int i=0;i<n;i++)
       {
            if(a[i]-j>=x)
            cnt++,j++;
       }
       cout<<j<<endl;
     }
     return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值