zoukankan      html  css  js  c++  java
  • Can you find it?

    http://acm.hdu.edu.cn/showproblem.php?pid=2141

    View Code
     1 #include<iostream>
     2 #include<cstdlib>
     3 using namespace std ;
     4 #define maxn 505
     5 int a[maxn], b[maxn], c[maxn] ;
     6 int ab[maxn*maxn] ;
     7 int cmp(const void *a, const void *b)
     8 {
     9     return *(int *)a - *(int *)b ;
    10 }
    11 int find(int n, int len)
    12 {
    13    int min, max, mid ;
    14    min = 0 ;
    15    max = len -1 ;
    16    while(min<=max)
    17    {
    18        mid = (min+max)/2 ;
    19        if(ab[mid]==n)
    20        return 1 ;
    21        if(ab[mid]<n)
    22        min = mid + 1  ;
    23        if(ab[mid] >n)
    24        max = mid - 1 ;
    25    }
    26     return 0 ;
    27 }
    28 int main()
    29 {
    30     int i, j, k , x, s ;
    31     int l, n, m ;
    32     int times = 1 ;
    33     while(cin>>l>>n>>m)
    34     {
    35         int num = 0 ;
    36         for(i=0; i<l; i++)
    37         cin>>a[i] ;
    38         for(j=0; j<n; j++)
    39         cin>>b[j] ;
    40         for(k=0; k<m; k++)
    41         cin>>c[k] ;
    42         for(i=0; i<l; i++)
    43         for(j=0; j<n; j++)
    44         {
    45             ab[num++] = a[i] + b[j] ;
    46         }
    47         qsort(ab, num, sizeof(ab[0]), cmp) ;
    48         cout<<"Case "<<times++<<":"<<endl ;
    49         cin>>s ;
    50         while(s--)
    51         {
    52             cin>>x ;
    53             int flag = 1 ;
    54             for(k=0; k<m; k++)
    55             {
    56                 if(find(x-c[k],num)==1)
    57                 {
    58                     flag = 0 ;
    59                     break ;
    60                 }
    61             }
    62             if(flag==0)
    63             cout<<"YES"<<endl ;
    64             else
    65             cout<<"NO"<<endl ;
    66         }
    67     }
    68     return 0 ;
    69 }

     输入有三个集合,要先合并两个为一,然后再对这个
    合并出来的集合进行二分

  • 相关阅读:
    Linux外部设备的使用
    Linux硬件信息查询
    Linux中swap分区设置
    状态检测型防火墙
    CentOS更换源,亲测可用
    Linux文件权限序列简述
    Linux终端打印文本色彩
    Linux 系统命令之netstat
    Linux配置DNS服务器
    水题一枚
  • 原文地址:https://www.cnblogs.com/yelan/p/2934239.html
Copyright © 2011-2022 走看看