全部tle qaq
查看原帖
全部tle qaq
1233392
RY111楼主2024/7/24 10:24

本来想按板子写,但是check逻辑不一样 更新的就不一样,自己写结果就tle了 是搜的范围太大了吗

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

const int maxn=1e5+10;
int n,c;
int a[maxn]={0}; 
int d[maxn];
bool check(int mid)
{
	int cnt=0;
	for(int i=1;i<=n;i++)
	if(d[i]<mid)cnt++;
	if(cnt>=c)
	return false;
	return true;
}
int bs(int l,int r)
{
	while(l<r)
	{
		int mid=(l+r+1)>>1;
		if(check)
		r=mid;
		else
		l=mid+1;
	}
	return l;
}
int main()
{
cin>>n>>c;
for(int i=1;i<=n;i++)
{
	cin>>a[i];
	d[i]=a[i]-a[i-1];
}

cout<<bs(1,maxn/2);
	
	
	return 0;
}
2024/7/24 10:24
加载中...