zoukankan      html  css  js  c++  java
  • codeforce 702C Cellular Network 二分答案

    http://codeforces.com/contest/702

    题意:n个村庄,m个机站,问机站最短半径覆盖完所有村庄

    思路:直接二分答案

    二分太弱,调了半天。。。。。

     1 // #pragma comment(linker, "/STACK:102c000000,102c000000")
     2 #include <iostream>
     3 #include <cstdio>
     4 #include <cstring>
     5 #include <sstream>
     6 #include <string>
     7 #include <algorithm>
     8 #include <list>
     9 #include <map>
    10 #include <vector>
    11 #include <queue>
    12 #include <stack>
    13 #include <cmath>
    14 #include <cstdlib>
    15 // #include <conio.h>
    16 using namespace std;
    17 #define pi acos(-1.0)
    18 const int N = 1e5+10;
    19 const int MOD = 1e9+7;
    20 #define inf 0x7fffffff
    21 typedef long long  LL;
    22 
    23 void frein(){freopen("in.txt","r",stdin);}
    24 void freout(){freopen("out.txt","w",stdout);}
    25 inline int read(){int x=0,f=1;char ch=getchar();while(ch>'9'||ch<'0') {if(ch=='-') f=-1;ch=getchar();}while(ch>='0'&&ch<='9') { x=x*10+ch-'0';ch=getchar();}return x*f;}
    26 
    27 int a[N];
    28 int b[N];
    29 
    30 int main(){
    31     // frein();
    32     // freout();
    33     int n,m;
    34     scanf("%d%d",&n,&m);
    35     for(int i=1;i<=n;i++) scanf("%d",&a[i]);
    36     for(int i=1;i<=m;i++) scanf("%d",&b[i]);
    37     LL l=0,r=2e9;
    38     while(l<r){
    39        LL mid=(l+r)>>1;
    40        int j=1;
    41        bool flag=false;
    42        for(int i=1;i<=n;i++){
    43           if(j>m){
    44             flag=true;
    45             break;
    46           }  
    47           if(fabs(b[j]-a[i])<=mid){
    48             continue;
    49           }
    50           else{
    51             j++;
    52             i--;
    53           }
    54        }    
    55        if(flag){
    56           l=mid+1;
    57        }
    58        else{
    59           r=mid;
    60        }
    61     }
    62     printf("%I64d
    ",l);
    63     return 0;
    64 }
  • 相关阅读:
    U3D+SVN: 两份相同资源放在不同目录下导致META的更改
    sceneManager.loadscene加载场景时不会主动去加载场景的依赖包,要手动加载或添加场景到build setting列表中
    android 屏幕适配
    android httpUrlConnection HttpClient
    android ndk
    android viewStub
    android 数字签名
    android mvc
    android OOM 内存溢出
    Aidl
  • 原文地址:https://www.cnblogs.com/ITUPC/p/5728618.html
Copyright © 2011-2022 走看看