解题思路:
注意事项:
参考代码:
#include <iostream>
using namespace std;
int L,N,M,a[10000];
int f(int x)
{
int ans=0,t=0,len=N+1;
for(int i=1;i<=len;i++)
{
if(a[i]-t>=x)
{
t=a[i];
}
else
{
ans++;
}
}
return ans;
}
int op(int l,int r)
{
if(l==r)
{
return l;
}
int mid=(l+r+1)>>1;
if(f(mid)<=M)
{
return op(mid,r);
}
else
{
return op(l,mid-1);
}
}
int main()
{
cin>>L>>N>>M;
for(int i=1;i<=N;i++)
{
cin>>a[i];
}
a[N+1]=L;
cout<<op(1,L);
return 0;
}
0.0分
0 人评分
假币问题 (C++代码)(向上取整的一种处理方式)浏览:1660 |
【偶数求和】 (C++代码)浏览:702 |
矩形面积交 (Java代码)浏览:1213 |
C语言训练-素数问题 (C语言代码)浏览:1654 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:659 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:559 |
A+B for Input-Output Practice (V) (C语言代码)浏览:617 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:798 |
简单的a+b (C语言代码)浏览:573 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)from DQM浏览:653 |