暑假学校OJ上的题目。

一道很有意思的二分。

题意:三个数组,每个数组各选一个数出来看是否能组成目标数。

题解:前两个数组两两的和组合一下,二分第三个数组,找是否能组成目标数。

代码:

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
#include<algorithm>
#include<cmath>
using namespace std;
const int maxn = ; int l,n,m;
int a[maxn];
int b[maxn];
int c[maxn];
int sum[maxn];
int cnt = ; int find(int x){
for(int i = ; i <= m; i ++){
int l = ,r = cnt+;
int mid;
while( l <= r){
mid = ( l + r) >> ;
if(c[i] + sum[mid] == x){
return true;
}
else if(c[i] + sum[mid] < x){
l = mid + ;
}
else if(c[i] + sum[mid] > x){
r = mid - ;
}
}
}
return false;
} int main(){
cin>>l>>n>>m;
for(int i = ; i <= l ;i++){
cin>>a[i];
}
for(int i = ; i <= n ;i++){
cin>>b[i];
}
for(int i = ; i <= m ;i++){
cin>>c[i];
}
for(int i = ; i <= l ;i++){
for(int j = ; j <= n ;j++){
sum[cnt++] = a[i]+b[j];
}
}
sort(sum+,sum++n);
int s;
cin>>s;
while(s--){
int x;
cin>>x;
if(find(x)){
cout<<"Yes"<<endl;
}
else{
cout<<"No"<<endl;
}
} return ;
}

最新文章

  1. 来自 CORS 预检通道的 CORS 头 &#39;Access-Control-Allow-Headers&#39; 的令牌 &#39;appkey&#39; 无效)。
  2. 纯CSS3实现3D动画导航,html5 webRTC技术实现免费网页电话拨打
  3. MVC View基础(转)
  4. Ubuntu常用软件推荐,图文详细说明及下载
  5. MVVM与Knockout
  6. x264中的帧类型、条带类型、数据分区(data partition)
  7. Json 与GeoJson
  8. php中const与define的区别
  9. Android实现自动更新功能
  10. python22期第一天(课程总结)
  11. mysql下批量清空某个库下的所有表(库不要删除,保留空库)
  12. codeforces701C
  13. web漏洞扫描工具AWVS使用
  14. Android之使用传感器获取相应数据
  15. [require-js]向下滑动ajax加载的javascript实现
  16. odoo开发笔记 -- 视图继承扩展
  17. FreePascal - Typhon在Windows10 X64下的使用问题!
  18. (面试)写出下面switch语句的输出结果
  19. 【Bootloader】bootloader启动过程分析
  20. JDBC 连接数据库,包含连接池

热门文章

  1. Java习题练习
  2. RF中滚动条的操作方法小结
  3. 拾遗:git pull 与 push 远程分支与本地分支顺序识别问题
  4. Haproxy 基础详解及动静分离配置
  5. 深入理解JAVA虚拟机原理之内存分配策略(二)
  6. kibana 7.* 设置中文 汉化
  7. Mac版本的 Axure rp8 不显示菜单栏
  8. 用python输出1-100之间所有的质数
  9. BCZM : 1.15
  10. 【JZOJ6421】匹配