zoukankan      html  css  js  c++  java
  • hdu 2141(二分)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2141

    #include<iostream>
    #include<algorithm>
    #include<cstdio>
    using namespace std;
    int a[505], b[505], c[505], s[1005], ans[250005] ;
    int main(){
        int l, n, m, x, mid, low, high, i, j, t=1 ;
        bool flag ;
        while(scanf("%d%d%d", &l, &n, &m)!=EOF){
            for(i=0; i<l; i++)
                scanf("%d", &a[i]) ;
            for(i=0; i<n; i++)
                scanf("%d", &b[i]) ;
            for(i=0; i<m; i++)
                scanf("%d", &c[i]) ;
            scanf("%d", &x) ;
            for(i=0; i<x; i++)
                scanf("%d", &s[i]) ;
            for(i=0; i<l; i++)
                for(j=0; j<n; j++)
                    ans[n*i+j] = a[i] + b[j] ;
            sort(ans, ans+n*l) ;
            printf("Case %ld:\n",t) ;
            t ++ ;
            for(i=0; i<x; i++){
                flag = false ;
                for(j=0; j<m; j++){
                    low = 0 ;
                    high = l * n - 1 ;
                    while(low<=high){
                        mid = (low+high) / 2 ;
                        if(c[j]+ans[mid]==s[i]){
                            flag = true ;
                            break ;
                        }
                        else if(c[j]+ans[mid]>s[i]) high = mid - 1 ;
                        else low = mid + 1 ;
                    }
                    if(flag) break ;
                }
                if(flag)
                    printf("YES\n") ;
                else
                    printf("NO\n") ;
            }
        }
        return 0 ;
    }
  • 相关阅读:
    IOS 面试题(不断更新...)
    IOS 数字日期转化为字符串
    C#汉字生成简拼
    ObjectiveC 深浅拷贝
    数组遍历方法forEach 和 map 的区别
    COJ1174(Shining Gems)
    POJ1062(昂贵的聘礼)
    HDOJ1879(继续畅通工程)
    最短路径经典题集(转载)
    HDOJ1863(畅通工程)
  • 原文地址:https://www.cnblogs.com/xiaolongchase/p/2209540.html
Copyright © 2011-2022 走看看