Median 题解(思维)

题目链接

题目思路

比赛时间想了好久都没想到其实没有那么难

我放下官方题解

代码

#include<bits/stdc++.h>
#define fi first
#define se second
#define debug printf(" I am here\n");
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<ll,ll> pii;
mt19937 rnd(time(0));
const ll INF=0x3f3f3f3f3f3f3f3f;
const int maxn=2e5+5,inf=0x3f3f3f3f,mod=20071027;
const double eps=1e-10;
int n,m;
int b[maxn];
signed main(){
    int _;scanf("%d",&_);
    while(_--){
        scanf("%d%d",&n,&m);
        for(int i=1;i<=m;i++){
            scanf("%d",&b[i]);
        }
        sort(b+1,b+1+m);
        int sz=n-m,ma=0,pos=0;
        b[m+1]=n+1;
        for(int i=1;i<=m+1;i++){
            if(b[i]-b[i-1]-1>=ma){
                ma=b[i]-b[i-1]-1;
                pos=i-1;
            }
        }
        if(2*ma<=sz||pos>=ma-(sz-ma)){
            printf("YES\n");
        }else{
            printf("NO\n");
        }
    }

    return 0;
}

posted @ 2021-08-19 16:49  hunxuewangzi  阅读(53)  评论(0编辑  收藏  举报