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 }
View Code

 

以上是关于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 跳石子

[BZOJ 1652][USACO 06FEB]Treats for the Cows 题解(区间DP)

bzoj1648 / P2853 [USACO06DEC]牛的野餐Cow Picnic