hdu2141Can you find it?
给你四个集合。要你从这四个集合中
各取出一个数出来,推断,取出的前三个数的和
是否等于第四个数。
数据比較大。我的做法是将
前两个集合全部数全部和的情况取出来,
然后二分查找第四个集合和第三集合取出的数的差值。
我比較懒。用了stl中的bsearch实现二分查找。
代码例如以下:
#include<iostream>
#include<cstdlib>
using namespace std;
int num_a,num_b,num_c,a[510],b[510],c[510],ab[250010];
int cmp(const void *a,const void *b)
{
return *(int *)a - *(int *)b;
}
void init()
{
int num_x,x,*p,tmp;
for(int i=0;i<num_a;i++)
scanf("%d",&a[i]);
for(int i=0;i<num_b;i++)
scanf("%d",&b[i]);
for(int i=0;i<num_a;i++)
for(int j=0;j<num_b;j++)
ab[i*num_b+j]=a[i]+b[j];
for(int i=0;i<num_c;i++)
scanf("%d",&c[i]);
qsort(ab,num_a*num_b,sizeof(int),cmp);
scanf("%d",&num_x);
while(num_x--)
{
scanf("%d",&x);
for(int i=0;i<num_c;i++)
{
tmp=x-c[i];
p=(int*)bsearch(&tmp,ab,num_a*num_b,sizeof(int),cmp);
if(p!=NULL)
{
printf("YES\n");
break;
}
}
if(p==NULL)
printf("NO\n");
}
}
int main()
{
int exp=0;
while(scanf("%d%d%d",&num_a,&num_b,&num_c)!=EOF)
{
printf("Case %d:\n",++exp);
init();
}
}
hdu2141Can you find it?的更多相关文章
- hdoj-2141-Can you find it?(二分查找)
题目链接 /* Name:HDU-2141-Can you find it? Copyright: Author: Date: 2018/4/12 17:15:46 Description: 暴力,复 ...
随机推荐
- 网络流 24 题汇总(LOJ 上只有 22 题???)
太裸的我就不放代码了...(黑体字序号的题表示值得注意) 1.搭配飞行员 [LOJ#6000] 二分图最大匹配. 2.太空飞行计划 [LOJ#6001] 最小割常规套路.输出方案.(注:这题换行符要用 ...
- 使用PropTypes进行类型检测
PropTypes 是react提供的用于检验数据类型的typechecking,避免应用越来越大的时候出现意料之外的bug class Greeting extends React.Componen ...
- Why Namespace?
上一节我们讨论了 Neutron 将虚拟 router 放置到 namespace 中实现了不同 subnet 之间的路由.今天探讨为什么要用 namespace 封装 router? 回顾一下前面的 ...
- BZOJ 1132 Tro
Tro [问题描述] 平面上有N个点. 求出所有以这N个点为顶点的三角形的面积和 N<=3000 [输入格式] 第一行给出数字N,N在[3,3000] 下面N行给出N个点的坐标,其值在[0,10 ...
- WML标签速查手册 wap标签
原文发布时间为:2010-08-19 -- 来源于本人的百度文章 [由搬家工具导入] WML标签速查手册(转)比较方便便于速查 结构相关标签 语法及属性 <wml> <wml x ...
- [翻译]现代Linux系统上的栈溢出攻击【转】
转自:http://www.codeweblog.com/%E7%BF%BB%E8%AF%91-%E7%8E%B0%E4%BB%A3linux%E7%B3%BB%E7%BB%9F%E4%B8%8A%E ...
- Viewpager禁止滑动
参考:http://www.jianshu.com/p/d3d766cf73d7 public class NoScrollViewPager extends ViewPager { private ...
- git的使用学习(九)搭建git服务器
搭建Git服务器 在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改. GitHub就是一个免费托管开源代码的远程仓库.但是对于某些视源代码如生命的商 ...
- hdu 2824(欧拉函数)
The Euler function Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- LeetCode OJ-- 3Sum **
https://oj.leetcode.com/problems/3sum/ 在一个数列中,求出所有3个数之和是0的3个数. 刚开始给自己挖了坑,由于没闹清,unique()函数的含义,去掉重复不彻底 ...