同样的代码,第一次50分,第二次全TLE,为什么呢?
查看原帖
同样的代码,第一次50分,第二次全TLE,为什么呢?
332549
幽灵特工楼主2020/9/24 12:48
#include <bits/stdc++.h>
using namespace std;
int lo,n,k;
int m[100000001];
int ans=0;
int mid;
bool sol(int x){
	ans=0;
	for(int i=1;i<=lo;i++){
		ans+=(m[i]-m[i-1])/mid;
		if((m[i]-m[i-1])%mid==0)ans--;//这句没加50分,加上全TLE;我注释掉之后再提交有10分,其它有WA和TLE
		if(ans>k)return 1;
	}
	return ans>k;
}
int main(){
	cin>>lo>>n>>k;
	for(int i=0;i<n;i++){
		cin>>m[i];
	}
	int l=0,r=lo;
	while(l<r-1){
		mid=l+r>>1;
		if(sol(mid))l=mid+1;
		else r=mid-1;
	}
	cout<<l;
}
2020/9/24 12:48
加载中...