解题思路:
注意事项:
参考代码:
#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 人评分
不知道哪里错了浏览:1141 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:646 |
C语言训练-排序问题<2> (C++代码)浏览:882 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:510 |
【蟠桃记】 (C语言代码)浏览:648 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:1515 |
A+B for Input-Output Practice (V) (C语言代码)浏览:617 |
用筛法求之N内的素数。 (C语言代码)浏览:803 |
The 3n + 1 problem (C语言代码)浏览:551 |
蛇行矩阵 (C语言代码)浏览:526 |