zoukankan      html  css  js  c++  java
  • 10.18 水二分

    Description

      Lucky为了掩护大部队,单枪匹马同敌人周旋,后来被敌人包围在某山头……等等,为什么怎么听怎么像狼牙山五壮士!不过不用着急,这次Lucky携带了足够的弹药,完全可以将涌上来的敌人一个一个干掉。Lucky是个神枪手,只要他的枪膛中有子弹,他就能将在他射程m(用从敌人位置到山头的直线距离算)以内的一个敌人瞬间射杀。但如果在射程内没有敌人,出于节约子弹考虑和面子问题,Lucky会等待敌人靠近然后射击。
      正当Lucky为自己的强大而自我膨胀时,他忽然发现了一个致命的失误:他携带的枪是单发枪,每射出一发子弹都必须花k秒钟的时间装子弹。而凶残的敌人才不会花时间等你换子弹呢。他们始终在以1m/s的速度接近山头。而如果在一个敌人到达山头时Lucky无法将他击毙,那么我们可怜的Lucky就将牺牲在敌人的刺刀下。现在Lucky用心灵感应向你发出求助:要保住自己的性命并且歼灭所有敌人,Lucky最多只能用多少时间给枪装上一发子弹?
      说明:假设一开始Lucky的枪中就有一发子弹,并且一旦确定一个装弹时间,Lucky始终会用这个时间完成子弹的装卸。希望你能帮助Lucky脱离险境。

    Input

      针对每组输入数据,第一行有两个整数n和m,(2≤n≤100,000; 1≤m≤10,000,000)n代表敌人个数,m代表Lucky的射程。
      接下来有n行,每行一个整数mi,(1≤mi≤10,000,000),代表每个敌人一开始相对山头的距离(单位为米)。

    Output

      每组输出数据仅有一个整数,代表Lucky的换弹时间(单位为秒)。

    Sample Input

    6 100 236 120 120 120 120 120

    Sample Output

    25
     
     
     
     
    二分距离
    code:
     1 #include<iostream>
     2 #include<cstdio>
     3 #include<algorithm>
     4 using namespace std;
     5 long long a[100006];
     6 long long n,m;
     7 bool check(long long x) {
     8     int timed=0;
     9     for(int i=1;i<=n;i++){
    10         if(a[i]-timed<0)return false;
    11         if(a[i]-timed>m)timed+=a[i]-timed-m;
    12         timed+=x;
    13     }
    14     return true;
    15 }
    16 int main() {
    17     cin>>n>>m;
    18     for(long long i=1; i<=n; i++)cin>>a[i];
    19     sort(a+1,a+n+1);
    20     if(a[1]>m) {
    21         for(long long i=2; i<=n; i++) {
    22             a[i]-=(a[1]-m);
    23         }
    24         a[1]=m;
    25     }
    26     long long ans,l=0,r=a[2];
    27     while(l<=r) {
    28         long long mid=l+r>>1;
    29         if(check(mid))l=mid+1,ans=mid;
    30         else r=mid-1;
    31     }
    32     cout<<ans;
    33     return 0;
    34 }

    over

  • 相关阅读:
    编译debian内核
    mini2440 最小根文件系统制作和nfs启动
    mini2440 uboot烧写uImage
    51单片机串口烧写故障
    uboot 2013.01 代码简析(3)第二阶段初始化
    uboot 2013.01 代码简析(2)第一阶段初始化
    uboot 2013.01 代码简析(1)开发板配置
    uboot 2013.01 s3c6400编译失败
    Shiro
    Shiro
  • 原文地址:https://www.cnblogs.com/saionjisekai/p/9813143.html
Copyright © 2011-2022 走看看