can you find it?
来源:互联网 发布:手机数据恢复精灵下载 编辑:程序博客网 时间:2024/05/01 09:41
#include <stdio.h>
#include <algorithm>
using namespace std;
int ab[1000020],a[1024],b[1024],c[1024];
int find(int x,int l,int r)
{
int mid;
if(r<l) return 0;
mid=(l+r)/2;
if(ab[mid]==x) return 1;
else if(ab[mid]>x) return find(x,l,mid-1);
else return find(x,mid+1,r);
}
int main()
{
int x,y,z,i,j,n,m,t,k,q=0;
while(scanf("%d %d %d",&x,&y,&z)!=EOF)
{
t=0;q++;
for(i=0;i<x;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<y;i++)
{
scanf("%d",&b[i]);
}
for(i=0;i<z;i++)
{
scanf("%d",&c[i]);
}
for(i=0;i<x;i++)
{
for(j=0;j<y;j++)
{
ab[t++]=a[i]+b[j];
}
}
sort(ab,ab+t+1);
scanf("%d",&n);
printf("Case %d:\n",q);
while(n--)
{
k=0;
scanf("%d",&m);
for(j=0;j<z;j++)
{
if(find(m-c[j],0,t))
{
k=1;
continue;
}
}
if(k==1) printf("YES\n");
else printf("NO\n");
}
}
return 0;
}
运用了二分查找的方法;
查找前一定要排序;
函数 sort(ab,ab+t+1); 前面为数组名,后面为数组名加数组长度;
头文件
#include <algorithm>
using namespace std;
- can you find it?
- Can you find it?
- Can you find it?
- Can you find it?
- can you find it?
- Can you find it?
- can you find it?
- Can you find it?
- Can you find it?
- Can you find it?
- Can you find it?
- can you find it?
- Can you find it?
- Can you find it?
- Can you find it?
- HDU Can you find it?
- HDU2141 Can you find it?
- Can you find it?---二分
- Android中文API——EditText
- 关于Viewpager中的Fragment的生命周期
- 牛顿迭代法求方程的根
- 不要62
- HTML5之article元素与section元素之间的区别? (赞)
- can you find it?
- 在Android工程中加入AIDL文件时,gen目录生成的文件报错-问题解决
- 最大公约数的最大值
- Delete
- 多个数据的最小公倍数
- 初学Android,手机闹钟服务(六十八)
- Grada
- ceph存储 Ceph存储分层技术
- 汉字统计