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: 暴力,复 ...
随机推荐
- web常见攻击总结
1.Sql注入 攻击者把sql命令插入到web表单的输入域或页面请求的查询字符串, 欺骗服务器执行恶意的sql命令 防御措施 前端: 1.正则验证字符串格式 2.过滤字符串的非法字符 后端: 1.不要 ...
- 完美匹配(matching)
完美匹配(matching) 题目描述 给定nn个点,mm条边的无向图G=(V,E)G=(V,E),求出它的完美匹配数量对106+3106+3取模的值. 一个完美匹配可以用一个排列ϕ:V→Vϕ:V→V ...
- flake8(代码规范利器)
flake8(代码规范利器) 概述 flake8是下面三个工具的封装: 1)PyFlakes 2)Pep8 3)NedBatchelder’s McCabe script Flake8的下载地址:ht ...
- 关于UITextView的限制字数显示,以及emjor表情占用字节处理,复制粘贴字节处理~优化
//限制字数 #define MAX_LIMIT_NUMS 30 1 #pragma mark -- textview的代理事件 - (BOOL)textView:(UITextView *)text ...
- 分裂游戏(bzoj 1188)
Description 聪聪和睿睿最近迷上了一款叫做分裂的游戏. 该游戏的规则试: 共有 n 个瓶子, 标号为 0,1,2.....n-1, 第 i 个瓶子中装有 p[i]颗巧克力豆,两个人轮流取豆子 ...
- JS - caller,callee,call,apply [transfer] aA ==> apply uses an array [] as the second argument. call uses different argument.
在提到上述的概念之前,首先想说说javascript中函数的隐含参数:arguments Arguments : 该对象代表正在执行的函数和调用它的函数的参数. [function.]argument ...
- android基本控件学习-----Button
Button讲解: 一.在我们实际的使用button的时候经常会对button不同状态会有不同的显示,在讲解Button前,首先对drawable下面的statelistdrawable的相关知识讲一 ...
- [SaltStack] Minion-conf自动更新
minion-conf配置文件自动更新, 加载 minion-conf是每个minion自身以来的配置, 为了方便我们在中心管控机上(Master)统一配置, 然后下发文件, 进而使得Minion能够 ...
- linux 常用命令: runuser
rpm: coreutils-8.4-9.el6.x86_64 runuser --help 用法:runuser [选项]... [-] [用户 [参数]... ] Change the effec ...
- JAVA基础之List接口
个人理解: list接口是Collection接口的子类,其继承了Collection接口的所有方法,但也有其独有的方法,不过在迭代的时候不要进行任何操作.牢记数据存储的四种结构:堆栈.队列.数组.链 ...