就子任务WA了,求QAQ
  • 板块题目总版
  • 楼主PHX_2012ya
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/3/3 18:11
  • 上次更新2024/3/3 20:02:58
查看原帖
就子任务WA了,求QAQ
1056284
PHX_2012ya楼主2024/3/3 18:11

P2678跳石头

用的二分答案

#include<bits/stdc++.h>
using namespace std;
int l,m,n,a[51000];
int check(int tmp) 
{  
	int cnt=0,p=0; 
	for (int i=1;i<=n;++i) 
	{
		if (a[i]-a[p]<tmp) 
		{
			cnt++;
			if (cnt>m) 
				return 0; 
		} 
		else 
			p=i;
	}
	return 1; 
}
 
int main() 
{
	cin>>l>>n>>m;
	for (int i=1;i<=n;++i) 
		cin>>a[i];
	int left=1,right=l,mid;
	while(left<right) 
	{
		mid=(left+right+1)/2;
		if (check(mid)) 
			left=mid; 
		else 
			right=mid-1;
	}
	cout<<left;
	return 0;
}

为什么!!!

2024/3/3 18:11
加载中...