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;
}
不摆烂了,写题