求助二分题
查看原帖
求助二分题
1059176
Quartz_Blocks楼主2024/3/12 22:18

P2678 二分没过求助

#include <iostream>
using namespace std;

int main(){
	ios::sync_with_stdio(false);
	int l1,n,m,a[100010];
	cin >> l1 >> n >> m;
	for(int i = 1;i <= n;i++) cin >> a[i];
	int l = 0,r = l1,mid,ans = 0; 
	while(l <= r){
		mid = (l+r)/2;
		int cnt = 0;
		for(int i = 1;i < n;i++){
			if(a[i+1] - a[i] < mid){ 
				cnt++;
			}
		}
		if(cnt <= m){
			ans = max(mid,ans);
			l = mid+1;
		}else{
			r = mid-1;
		}
	}
	cout << ans;
}

提交记录

2024/3/12 22:18
加载中...