zoukankan      html  css  js  c++  java
  • P2678 跳石头

    2019 - 4 - 17


    这道题使我们的市内竞赛的题

     

    然则我们都不会

     

    现在明白了


    这道题的本质就是暴力,二分完了还是暴力,只是二分降低了暴力的次数


    让我们开始吧

    平坦的成功之路?那只是先驱者踏平的 


    ——————————————————————

    难度:普及+/提高-

    链接:Miku最好看

    ——————————————————————

    这个题就是一个二分,暴力,思路?很抱歉,我证不出来,

    你能明白的

    ——————————————————————

    2019/4/17

    哦,对,为什么是l+r+1    /2 呢?

     

    ________________________________________

     1 /*
     2 这道题就是二分
     3 
     4 首先,你要找到暴力做法,找到之后,你就会发现这道题的做法了——二分
     5 
     6 
     7 当然,二分的关键,就是区间,关于这个区间,就是距离,我们从一半一半开始二分距离 
     8 
     9 
    10 以及,看到二分的关键,你会发现 如果这个mid是合法的,那么答案就在mid—r之间,否则,就在l-mid之间
    11 
    12 如果大佬您能证明出来,请留在评论区,谢谢 
    13 
    14 
    15 */
    16 #include<iostream>
    17 
    18 using namespace std;
    19 int stone[50001];//距离记录石头 
    20 
    21 int L,N,M;
    22 
    23 int check(int x)//这里是暴力检查 
    24 {
    25     int last=0,cnt=0; //上一个点,我们需要移走的石头数 
    26     for(int i=1;i<=N+1;++i){//n+1?因为 到终点还有一段路程 
    27         if(stone[i]-last<x) cnt++;//如果留着这块石头 就会发现最短路径小于我们的mid,就要删去它
    28         
    29         //删去了,就不用更新last ,因为石头已经不存在了 
    30         else
    31         last=stone[i];//留着,更新last 
    32     }
    33     if(cnt>M) return 0;//我们为了满足条件 需要拿走超过规定的石头,自然是不合法 
    34     else return 1; //你明白的 
    35 }
    36 
    37 
    38 int main()
    39 {
    40     cin>>L>>N>>M;
    41     for(int i=1;i<=N;++i)
    42     {
    43         cin>>stone[i];//输入石头位置 
    44     }
    45     stone[N+1]=L;//处理到终点的路程 
    46     int l=1,r=L;
    47     while(l<r)//这是二分 
    48     {
    49         int mid=(l+r+1)/2; 
    50         if(check(mid)) l=mid;//看不懂if 
    51         //如果您能证明,可不可以留下过程呢 
    52         
    53         
    54         //感性理解 --slk 
    55         else
    56         r=mid-1;
    57     }
    58     cout<<l;//输出左区间 
    59     return 0; 
    60 }
    AC

    ________________________________________

    Have a good life

    ---恢复内容结束---

  • 相关阅读:
    win7同时安装python2和python3
    Centos6.8安装python3.6
    Typescript的接口
    ES5中的类相关/Typescript的类相关
    Typescript介绍
    Global Interpreter Lock 全局解释器锁
    Go语言设计模式(五)
    Go语言设计模式(四)
    Go语言反射
    Go语言程序设计(三)
  • 原文地址:https://www.cnblogs.com/For-Miku/p/10698374.html
Copyright © 2011-2022 走看看