Can you find it? 二分
来源:互联网 发布:java 基础书籍 编辑:程序博客网 时间:2024/06/14 23:56
Give you three sequences of numbers A, B, C, then we give you a number X. Now you need to calculate if you can find the three numbers Ai, Bj, Ck, which satisfy the formula Ai+Bj+Ck = X.
3 3 31 2 31 2 31 2 331410
Case 1:NOYESNO
前将前两组相加构成新数组,对新生成的进行二分#include<iostream>#include<algorithm>using namespace std;int a[505],b[505],c[505],d[250005],l,n,m,x,s,tp,ed,mid,num=0;bool cmp(int A,int B){ return A<B;}int fun(int x){ for(int i=0;i<m;i++) { tp=0; ed=l*n-1; while(tp<=ed) { mid=(tp+ed)>>1; if ((d[mid]+c[i])==x) return 1; if ((d[mid]+c[i])<x) tp=mid+1; else ed=mid-1; } } return 0;}int main(){ while(cin>>l>>n>>m) { num++; cout<<"Case "<<num<<":"<<endl; for(int i=0;i<l;i++) cin>>a[i]; for(int i=0;i<n;i++) cin>>b[i]; for(int i=0;i<m;i++) cin>>c[i]; for(int i=0;i<l;i++) for(int j=0;j<n;j++) d[i*n+j]=a[i]+b[j]; sort(d,d+l*n,cmp); cin>>s; while(s--) { cin>>x; if (fun(x)) cout<<"YES"<<endl; else cout<<"NO"<<endl; } } return 0;}
阅读全文
0 0
- Can you find it?---二分
- Can you find it?(二分)
- Can you find it? 【二分】
- Can you find it? 二分
- Can you find it? hdu2141 二分查找
- HDU2141:Can you find it?(二分)
- hdu 2141 Can you find it? 二分
- HDU 2141 Can you find it?(二分)
- hdu 2141 Can you find it? 二分
- 二分 hdu2141 Can you find it?
- HDU 2141 Can you find it?【二分】
- hdu2141 Can you find it?(二分*)
- hdoj2141 Can you find it?二分+模拟
- hdoj-2141 Can you find it?【二分】
- HDU2141 Can you find it?(二分)
- HDU2141:Can you find it? (二分)
- hdu2141 Can you find it? (二分)
- 【HDU 2141】【二分】 Can you find it?
- 前端跨域知识总结
- 代写演讲稿的写作要求有哪些
- JAVA-初步认识-第二章-算术运算符1
- U盘安装Kali Linux提示cd-rom无法挂载-解决方案
- caioj1037:递归7(走迷宫)
- Can you find it? 二分
- MySQL 5.7.19源码安装
- 设计框架(MVC、MVP、MVVM、VIPER)的演化说明总结
- html学习6—body中标签(
- C++ Primer Plus第四章课后编程答案
- centos7系统下nginx安装并配置开机自启动操作
- 深夜幻想
- 技术文章 | 深度学习在推荐领域的应用:Lookalike 算法
- HttpClient中post请求http、https示例