社区讨论

帮忙看看怎么改,subtask1没过

P2678[NOIP 2015 提高组] 跳石头参与者 3已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@m3tmr1xg
此快照首次捕获于
2024/11/23 11:48
去年
此快照最后确认于
2025/11/04 14:08
4 个月前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
long long n,a[50005],m,length,l,r,now,before;
int main()
{
	cin>>length>>n>>m;
	for(int i=0; i<n; i++)
	{
		cin>>now;
		a[i]=now-before;
		before=now;
	}
	a[n]=length-now;
	l=1;
	if(n==m)
	{
		cout<<length;
		return 0;
	}
	r=length/(n-m);
	while(l<=r)
	{
		long long mid=l+(r-l)/2,t,k=0;
		for(int i=0; i<=n; i++)
		{
			t=a[i];
			while(t<mid&&i<n)
			{
				i++;
				t+=a[i];
				k++;
			}
		}
		if(k<=m) l=mid+1;
		else r=mid-1;
	}
	cout<<r;
	return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...