跳石头|河中跳房子|NOIP2015提高组T4|二分法

Posted AlenaNuna

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跳石头|河中跳房子|NOIP2015提高组T4|二分法相关的知识,希望对你有一定的参考价值。

 

提交地址:http://codevs.cn/problem/4768/

题目:

 

 题意:自己看

思路:

1.读入各个石头数据

2.直接二分答案:

枚举一个石头i和一个石头j,要求i和j之间的距离为mid,然后删去i到j之间的石头,再将i到j之间的石头数加到ans里

然后把ans和m比较一下

然后就那么搞……

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 #include<algorithm>
 5 #include<cmath>
 6 using namespace std;
 7 int main()
 8 {
 9     int L,a[50050],ans;
10     int n,m,i,j,l,r,mid,k;
11     scanf("%d %d %d",&L,&n,&m);
12     for (i=1; i<=n; i++) scanf("%d",&a[i]);
13     l=0;r=L+1;
14     a[0]=0;a[n+1]=L;
15     while (l+1<r)
16     {
17         ans=0;
18         mid=(l+r)/2;
19         i=0;
20         while (i<=n)
21         {
22             j=i+1;
23             while (j<=n+1 && a[j]-a[i]<mid) j++;
24             ans+=j-i-1;
25             i=j;
26         }
27         if (ans<=m) l=mid;
28         else r=mid;
29     }
30     printf("%d",l);
31     return 0;
32 }
跳石头

 

小计:

累计任务真的做的好慢啊……一月多拖到现在,是不是要开新坑给自己找找压力和动力啊…?

不喜欢把一道题目单发题解…感觉自己太弱了…

喵 喵 喵

以上是关于跳石头|河中跳房子|NOIP2015提高组T4|二分法的主要内容,如果未能解决你的问题,请参考以下文章

[NOIp2015提高组]跳石头

NOIP2015提高组跳石头

[NOIP2015] 提高组 洛谷P2678 跳石头

NOIP2015提高组Day2 T1 跳石头

JZYZOJ1452 NOIP2015_提高组Day2_1_跳石头

bzoj1650 / P2855 [USACO06DEC]河跳房子River Hopscotch / P2678 (noip2015)跳石头