解题思路:
注意事项:
参考代码:
#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语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:1067 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:553 |
兰顿蚂蚁 (C++代码)浏览:1225 |
输出正反三角形 (C语言代码)浏览:859 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:606 |
C语言程序设计教程(第三版)课后习题6.5 (C++代码)浏览:487 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:638 |
【计算两点间的距离】 (C语言代码)浏览:1522 |
C语言程序设计教程(第三版)课后习题9.2 (C语言代码)浏览:573 |
Cylinder (C语言描述,蓝桥杯)浏览:1279 |