bzoj1650 / P2855 [USACO06DEC]河跳房子River Hopscotch / P2678 (noip2015)跳石头
Posted kafuuchino
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bzoj1650 / P2855 [USACO06DEC]河跳房子River Hopscotch / P2678 (noip2015)跳石头相关的知识,希望对你有一定的参考价值。
P2855 [USACO06DEC]河跳房子River Hopscotch
二分+贪心
每次二分最小长度,蓝后检查需要去掉的石子数是否超过限制。
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 #define N 50010 7 int n,m,L,a[N]; 8 bool check(int lim){ 9 int k=0; 10 for(int i=1,j=0;i<=n;++i){ 11 if(a[i]-a[j]<lim) ++k; 12 else j=i; 13 }return k<=m; 14 } 15 int main(){ 16 scanf("%d%d%d",&L,&n,&m); a[++n]=L; 17 for(int i=1;i<n;++i) scanf("%d",&a[i]); 18 sort(a+1,a+n+1); 19 int l=0,r=L; 20 while(l<r){ 21 int mid=l+((r-l)>>1); 22 if(check(mid)) l=mid+1; 23 else r=mid; 24 }printf("%d",check(l)?l:l-1); 25 return 0; 26 }
以上是关于bzoj1650 / P2855 [USACO06DEC]河跳房子River Hopscotch / P2678 (noip2015)跳石头的主要内容,如果未能解决你的问题,请参考以下文章
BZOJ 1650 [Usaco2006 Dec]River Hopscotch 跳石子:二分
刷水-二分答案BZOJ1650-[Usaco2006 Dec]River Hopscotch 跳石子
bzoj 1688: [Usaco2005 Open]Disease Manangement 疾病管理
1650: [Usaco2006 Dec]River Hopscotch 跳石子