zoukankan      html  css  js  c++  java
  • Aizu ITP2_6_A(二分模板)

    For a given sequence $A = {a_0, a_1, ..., a_{n-1}}$ which is sorted by ascending order, find a specific value $k$ given as a query.

    Input

    The input is given in the following format.

    $n$
    $a_0 ; a_1 ; ,..., ; a_{n-1}$
    $q$
    $k_1$
    $k_2$
    :
    $k_q$
    

    The number of elements $n$ and each element $a_i$ are given in the first line and the second line respectively. In the third line, the number of queries $q$ is given and the following $q$ lines, $q$ integers $k_i$ are given as queries.

    Output

    For each query, print 1 if any element in $A$ is equivalent to $k$, and 0 otherwise.

    Constraints

    • $1 leq n leq 100,000$
    • $1 leq q leq 200,000$
    • $0 leq a_0 leq a_1 leq ... leq a_{n-1} leq 1,000,000,000$
    • $0 leq k_i leq 1,000,000,000$

    Sample Input 1

    4
    1 2 2 4
    3
    2
    3
    5
    

    Sample Output 1

    1
    0
    0

    题意:如果序列中有元素k则输出1,否则输出0。

    思路:二分模板题。见代码。

    疑惑:可能是这个题测试数据比较水,不排序也能过。


     1 #include<iostream>
     2 #include<algorithm> 
     3 using namespace std;
     4 int N;
     5 long long a[100005];
     6  
     7 int find(long long x,int l,int r){
     8     int m=(r+l)>>1;
     9     while(r>=l){
    10         if(x==a[m]) return 1;
    11         else if(x<a[m]) r=m-1;
    12         else  l=m+1;
    13                 
    14         m=(r+l+1)>>1;
    15     }
    16 return 0;
    17 }
    18 
    19 int main(){
    20     int Q;
    21     long long x;
    22     
    23     cin>>N;
    24     for(int i=0;i<N;i++)
    25         cin>>a[i];
    26     sort(a,a+N);    
    27     cin>>Q;
    28     while(Q--){
    29         cin>>x;
    30         cout<<find(x,0,N-1)<<endl;
    31     }     
    32     return 0;
    33 }
  • 相关阅读:
    SQL语句快速入门
    分享一些不错的sql语句
    放弃一键还原GHOST!!使用强大WIN7自带备份
    ZEND快捷方式
    eWebEditor在IE8,IE7下所有按钮无效之解决办法
    MySQL中文乱码解决方案集锦
    A+B Problem II(高精度运算)
    矩形嵌套(动态规划)
    贪心——会场安排
    擅长排列的小明(递归,暴力求解)
  • 原文地址:https://www.cnblogs.com/yzhhh/p/10048847.html
Copyright © 2011-2022 走看看