1 条题解
-
0
C++ :
#include<bits/stdc++.h> using namespace std; int l,n,k; int a[100005]; int L,R; bool check(int dis){//判断mid是否满足条件的函数~~~ int cnt=0;//记录所用路标的个数 for(int i=0;i<=n;i++){ if(a[i+1]-a[i]>dis){ cnt+=(a[i+1]-a[i])/dis; if((a[i+1]-a[i])%dis==0) cnt--; } if(cnt>k) return false;//不满足条件 } return true;//满足条件 } int main(){ scanf("%d%d%d",&l,&n,&k); for(int i=1;i<=n;i++) scanf("%d",&a[i]); L=0;R=10000005;//表示懒得动脑qwq a[0]=0;//注意题目的坑点,前后都不能丢 a[n+1]=l; int ans; while(L<R){ int mid=(L+R)/2; if(check(mid)) R=mid; else L=mid+1; } cout<<L; }
- 1
信息
- ID
- 830
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者