首页 > 其他分享 >[ABC326C] Peak 题解

[ABC326C] Peak 题解

时间:2023-11-19 16:55:57浏览次数:41  
标签:ABC326C int 题解 long maxn Peak ans 坐标

题目链接

题目思路

这个问题要求找到一个半开区间,使得在这个区间内包含尽可能多的礼物。首先,我们需要将输入的礼物坐标按照从小到大的顺序进行排序。然后,我们可以使用双指针的方法来寻找最佳的区间。

代码

以下是代码解释:

#include<bits/stdc++.h>
using namespace std;
const int maxn=3e5+10;
#define int long long
int a[maxn];
int sum[maxn];
int n,len;

// 去除重复的坐标
void uni(){
    int m=0;
    a[0]=-1;
    for(int i=1;i<=n;i++){
        if(a[i]!=a[i-1]) a[++m]=a[i];
    }
    n=m;
}

signed main(){
    ios::sync_with_stdio(0);
    cin>>n>>len;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    sort(a+1,a+n+1);
    
    // 去除重复的坐标
    uni();
    
    int i=n,j=n,ans=0;
    while(i>=1&&j>=1){
        ans=max(ans,j-i+1); // 记录当前区间的长度
        if(j<i) i=j; // 如果 j < i,则将 i 设置为 j,表示需要向右移动 i 来扩大区间
        if(a[j]-a[i-1]<len) i--; // 如果区间长度小于 len,向左移动 i,扩大区间
        else j--; // 否则向左移动 j,缩小区间
    }
    cout<<ans;
    return 0;
}

标签:ABC326C,int,题解,long,maxn,Peak,ans,坐标
From: https://www.cnblogs.com/IOIAKmerlin/p/17832495.html

相关文章

  • [ABC328C] Consecutive 题解
    HelloWorld链接这道题是一个很明显的前缀和,我们把$sum_i$表示为前$i$个字符有多少个有重复,查询的时候就用$sum_{r-1}-sum_{l-1}$就行了。代码#include<bits/stdc++.h>usingnamespacestd;strings;intsum[300010];intmain(){ intn,q; cin>>n>>q>>s; for(in......
  • CF222A Shooshuns and Sequence 题解
    分析这题是一个很水的题,就是对一个序列有$2$种操作方法,一种是对第$K$个数以前的数的第一个进行删除,另一个则是在整个序列后添加这第$K$个数,使得整个序列为同一个数字,显然,后者是无效操作,则只需要判断第$K$个数以后有无与第$K$个不同的数,有则无解,反之有解。若有解,然后再......
  • CF601B Lipshitz Sequence 题解
    给你一个序列\(v_{1\dotsn}\),定义\(f(v)\)为\(v\)中斜率最大值(\(\lvertv\rvert=1\)则\(f(v)=0\)),有\(q\)组询问,每次给定\(1\lel\ltr\len\),求\(a_{l\dotsr}\)的每个子区间的\(f\)之和。一个关键的性质是,最大的斜率只在相邻数间取到。有了这个性质,这题......
  • NEFU OJ Problem 1489 青蛙赶路 题解【动态规划DP】
    Problem:GTimeLimit:2000msMemoryLimit:65535KDescription有一只青蛙,每秒选择走1米或跳m米,青蛙体力不足,所以不能连续两秒都在跳。青蛙将移动到[l,r]之间,它想知道有多少种不同的方式来实现其目标。两种方式是不同的,当且仅当它们移动不同的米或花费不同的秒,或者是在一秒......
  • NEFU OJ Problem1485 贪吃蛇大作战 题解
    Problem:FTimeLimit:1000msMemoryLimit:65535K题目Description贪吃蛇大家一定都玩过吧,现在宋哥也要玩这个游戏,最初的时候贪吃蛇从屏幕的左下角出发,但是有一个非常不幸的事情,就是宋哥的游戏机的左键和下键坏掉了,这意味着什么?没错!他只能操控他的蛇向右或向上走了,假设屏幕......
  • ICPC2023深圳部分题解(A,D,E,F,G,K,L)
    目录正题A一道好题题目大意解题思路D机器人兄弟题目大意解题思路E二合一题目大意解题思路F见面礼题目大意解题思路G相似基因序列问题题目大意解题思路K四国军棋题目大意解题思路LMary有颗有根树题目大意解题思路正题好像还没上gym所以放不了题目链接,深圳这场的题目我觉......
  • ctf.show 信息泄露部分题解
    源码泄露根据题目可以知道这个是源码泄露,所以是看源代码,查看源代码的三种方式:CTRL+U,F12,右键选择查看源代码,flag就在源代码内前台JS绕过启动靶场后给出的提示是无法查看源代码,右键和F12都无法使用,题目是前台JS绕过,所以我们进入浏览器的设置界面,搜索javascript找到后把他禁用,然后再返......
  • 洛谷 P9869 [NOIP 2023] 三值逻辑 题解
    https://www.luogu.com.cn/problem/P9869?contestId=145259看到要给变量赋初始值,还是T,F,U之类的,容易想到2-SAT。设\(1\simn+m\)的点表示\(x_1,x_2,\dots,x_{n+m}\)为T的点,其中\(x_{k+n}(1\leqk\leqm)\)表示在第\(k\)次操作被操作的变量的值(操作......
  • qemu-kvm: error: failed to set MSR x38d to x0x 【问题解决】
    问题解决创建报错在下面的issues找到解决办法https://github.com/GNS3/gns3-server/issues/1774可以尝试在VM上禁用MSR,然后检查是否可以启动qemu计算机添加内核模块参数临时修改echoY>/sys/module/kvm/parameters/ignore_msrs或者永久修改cat>/etc/modp......
  • AT_code_festival_2018_quala_b题解
    题意给定一个序列,里面的值只有可能是\(a\)或\(b\)(\(a<b\))。有\(m\)个区间,这里面的值必须是\(a\),求如何是序列总和最大。思路因为\(n\)和\(m\)都只有100,所以可以先暴力将所有值设为\(b\),再将区间里的值暴力修改为\(a\),最后统计答案。ACCODE#include<bits/stdc......