二分查找 HDOJ 2141 Can you find it?
- /*
- 题意:给出一个数,问是否有ai + bj + ck == x
- 二分查找:首先计算sum[l] = a[i] + b[j],对于q,枚举ck,查找是否有sum + ck == x
- */
- #include <cstdio>
- #include <algorithm>
- #include <cmath>
- using namespace std;
- typedef long long ll;
- const int MAXN = 5e2 + ;
- const int INF = 0x3f3f3f3f;
- ll a[MAXN], b[MAXN], c[MAXN];
- ll sum[MAXN*MAXN];
- int tot;
- bool my_binary_search(int l, int r, ll k) {
- while (l < r) {
- int mid = (l + r) >> ;
- if (sum[mid] == k) return true;
- else if (sum[mid] > k) r = mid;
- else l = mid + ;
- }
- return false;
- }
- int main(void) { //HDOJ 2141 Can you find it?
- //freopen ("HDOJ_2141.in", "r", stdin);
- int l, n, m, s, cas = ;
- while (scanf ("%d%d%d", &l, &n, &m) == ) {
- for (int i=; i<=l; ++i) scanf ("%I64d", &a[i]);
- for (int i=; i<=n; ++i) scanf ("%I64d", &b[i]);
- for (int i=; i<=m; ++i) scanf ("%I64d", &c[i]);
- scanf ("%d", &s);
- printf ("Case %d:\n", ++cas);
- sort (a+, a++l); sort (b+, b++n); sort (c+, c++m);
- tot = ;
- for (int i=; i<=l; ++i) {
- for (int j=; j<=n; ++j) {
- sum[++tot] = a[i] + b[j];
- }
- }
- sort (sum+, sum++tot);
- ll mn = a[] + b[] + c[], mx = a[l] + b[n] + c[m];
- while (s--) {
- ll q; scanf ("%I64d", &q);
- if (q < mn || q > mx) {
- puts ("NO"); continue;
- }
- bool flag = false;
- for (int i=; i<=m; ++i) {
- int p = lower_bound (sum+, sum++tot, q - c[i]) - sum;
- if (p < || p > tot) continue;
- if (sum[p] + c[i] == q) {
- flag = true; puts ("YES"); break;
- }
- //if (my_binary_search (1, tot, q - c[i])) {
- //flag = true; puts ("YES"); break;
- //}
- }
- if (!flag) {
- puts ("NO");
- }
- }
- }
- return ;
- }
二分查找 HDOJ 2141 Can you find it?的更多相关文章
- hdoj 2141 Can you find it?【二分查找+暴力】
Can you find it? Time Limit: 10000/3000 MS (Java/Others) Memory Limit: 32768/10000 K (Java/Others ...
- hdu 2141 Can you find it?(二分查找)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2141 题目大意:查找是否又满足条件的x值. 这里简单介绍一个小算法,二分查找. /* x^2+6*x- ...
- hdu 2141 Can you find it?(二分查找变例)
Problem Description Give you three sequences of numbers A, B, C, then we give you a number X. Now yo ...
- Can you find it? HDU - 2141 (二分查找)
Give you three sequences of numbers A, B, C, then we give you a number X. Now you need to calculate ...
- hdu 2141:Can you find it?(数据结构,二分查找)
Can you find it? Time Limit: 10000/3000 MS (Java/Others) Memory Limit: 32768/10000 K (Java/Others ...
- HDU 2141 Can you find it?【二分查找是否存在ai+bj+ck=x】
Give you three sequences of numbers A, B, C, then we give you a number X. Now you need to calculate ...
- 二分查找+数学 HDOJ 4342 History repeat itself
题目传送门 题意:计算从1开始到第n个非完全平方数的开方和 分析:设第n个非完全平方数的值为a,x * x < a < (x+1) * (x+1),而且易得(tmp = sqrt (a) ...
- 离散化+线段树/二分查找/尺取法 HDOJ 4325 Flowers
题目传送门 题意:给出一些花开花落的时间,问某个时间花开的有几朵 分析:这题有好几种做法,正解应该是离散化坐标后用线段树成端更新和单点询问.还有排序后二分查找询问点之前总花开数和总花凋谢数,作差是当前 ...
- jvascript 顺序查找和二分查找法
第一种:顺序查找法 中心思想:和数组中的值逐个比对! /* * 参数说明: * array:传入数组 * findVal:传入需要查找的数 */ function Orderseach(array,f ...
随机推荐
- 1sting 大数 递推
You will be given a string which only contains ‘1’; You can merge two adjacent ‘1’ to be ‘2’, or lea ...
- Java 添加、更新和移除PDF超链接
简介 PDF超链接用一个简单的链接包含了大量的信息,满足了人们在不占用太多空间的情况下渲染外部信息的需求.下面将介绍通过Java 在PDF中添加.更新和移除超链接. (一)工具使用: Free Spi ...
- Spring在Java Filter注入Bean为Null的问题解决
在Spring的自动注入中普通的POJO类都可以使用@Autowired进行自动注入,但是除了两类:Filter和Servlet无法使用自动注入属性.(因为这两个归Web容器管理)可以用init(集承 ...
- linux下常用快捷方式
一.终端最常用的快捷键: 1.新建终端窗口:crtl+shift+n 2.终端的切换:shift+左右箭头 3.挂起:crtl+s 4.解除挂起:crtl+q 5.清屏:crtl+l 二.命令行光标移 ...
- android学习笔记NO.5
Intent 能够理解为信使 由Intent来协助完毕android各个组件之间的通讯. 感觉基础薄弱就又复习了一遍基础知识,整理了一遍! gen 保存自己主动生成的R资源目录 gen->com ...
- Windows 环境下运用Python制作网络爬虫
import webbrowser as web import time import os i = 0 MAXNUM = 1 while i <= MAXNUM: web.open_new_t ...
- Redis开源项目的终极杀手? ——CRUG解读Redis开源协议变更
引言: 数据库制造商 Redis Labs 本周将公司开发的Redis 模块从 AGPL 迁移到将 Apache v2.0 与 Commons Clause 相结合的许可证,对许可证涵盖的软件作了限制 ...
- “指定的SAS安装数据(sid)文件不能用于选定的SAS软件订单
Sas安装指南,若拿到可用的sid文件,需要做如下修改. 使用新sid的时候,“指定的SAS安装数据(sid)文件不能用于选定的SAS软件订单”问题解决: 1.进入sas安装包,install_doc ...
- 关于微软网站维护培训时遇到的issues:What is WEDCS?
WEDCS (pronounced “wed-ex”), the Web Events Data Collection Service, is a system for collecting, com ...
- cocos2dx 在android平台打开文件问题
我们有一个项目是基于cocos2dx + lua,在网络部分用到了protobuf, 在初始化protobuf的时候须要读取本地文件,用lua的io.open读取文件在windows,ios上 ...