2016HUAS暑假集训训练2 O - Can you find it?
题目链接:https://vjudge.net/contest/121192#problem/O
这道题是一道典型二分搜素题,题意是给定3个数组 每个数组的数有m个 再给定l个sum要求在每个数组中是否有一个数之和等于sum 首先对每一个数组进行排序 然后把前两个集合所有情况的数加起来并保存在一个sun数组里 再对最后一个数组中的元素被sum减 得到的值再去sun数组中寻找 有的话就存在退出,因为最后一个数组的大小会小于sun数组的大小 能够节省时间
ac代码:
import java.io.BufferedInputStream;
import java.util.Arrays;
import java.util.Scanner; public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(new BufferedInputStream(System.in));
int a, b, jj, l, j, c, i, t, t2, sum; boolean f;
jj = ;
while (s.hasNext()) {
a = s.nextInt();
b = s.nextInt();
c = s.nextInt();
int ar[] = new int[a], br[] = new int[b], cr[] = new int[c];
for (i = ; i < a; i++)
ar[i] = s.nextInt();
for (i = ; i < b; i++)
br[i] = s.nextInt();
for (i = ; i < c; i++)
cr[i] = s.nextInt();
int sun[] = new int[a * b];
Arrays.sort(ar);
Arrays.sort(br);
System.out.println("Case " + jj++ + ":");
t = s.nextInt();
Arrays.fill(sun, );
l = ; for (i = ; i < a; i++) {
for (j = ; j < b; j++) {
{
sun[l++] = (ar[i] + br[j]); }
}
}
Arrays.sort(cr);
Arrays.sort(sun);
while (t-- > ) {
sum = s.nextInt(); f = false; for (i = ; i < c; i++)
if ((t2 = Arrays.binarySearch(sun,sum- cr[i]))>=) { //java系统内部的二分查找函数
f = true;
break;
} if (f == true)
System.out.println("YES");
else
System.out.println("NO");
} }
s.close();
}
}
2016HUAS暑假集训训练2 O - Can you find it?的更多相关文章
- 2016HUAS暑假集训训练2 L - Points on Cycle
题目链接:http://acm.hust.edu.cn/vjudge/contest/121192#problem/L 这是一道很有意思的题,就是给定一个以原点为圆心的圆,然后给定 一个点 求最大三 ...
- 2016HUAS暑假集训训练2 K - Hero
题目链接:http://acm.hust.edu.cn/vjudge/contest/121192#problem/K 这也是一道贪心题,刚开始写时以为只要对每一敌人的攻击和血的乘积进行从小到大排序即 ...
- 2016HUAS暑假集训训练2 J - 今年暑假不AC
题目链接:http://acm.hust.edu.cn/vjudge/contest/121192#problem/J 此题要求是计算能够看到最多的节目 ,贪心算法即可,首先对结束时间排序,然后在把开 ...
- 2016huas暑假集训训练题 G-Who's in the Middle
题目链接:http://acm.hust.edu.cn/vjudge/contest/121192#problem/G 此题大意是给定一个数n 然后有n个数 要求求出其中位数 刚开始以为是按数学中的 ...
- 2016HUAS暑假集训训练2 F - A Simple Problem with Integers
Description 给出了一个序列,你需要处理如下两种询问. "C a b c"表示给[a, b]区间中的值全部增加c (-10000 ≤ c ≤ 10000). " ...
- 2016HUAS暑假集训训练2 E - I Hate It
Description 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少.这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老 ...
- 2016HUAS暑假集训训练2 D - 敌兵布阵
Description Lily 特别喜欢养花,但是由于她的花特别多,所以照料这些花就变得不太容易.她把她的花依次排成一行,每盆花都有一个美观值.如果Lily把某盆花照料的好的话,这盆花的美观值就会上 ...
- 2016HUAS暑假集训训练2 A - Is It A Tree?
Description A tree is a well-known data structure that is either empty (null, void, nothing) or is a ...
- 2016HUAS暑假集训训练题 G - Oil Deposits
Description The GeoSurvComp geologic survey company is responsible for detecting underground oil dep ...
随机推荐
- AJAX案例四:省市联动
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...
- 03 Javascript初识
Javascript语言(★★★★★) Javascript是基于对象和事件驱动的脚本语言,作用在客户端. 特点: * 交互性 * 安全性(不能访问本地的硬盘) ...
- checkbox 的全选与全不选
checkbox 的全选与全不选 只需要调用 cekAll.check();方法,这个方法接收两个参数: 参数一: 全选按钮的 id 以字符串的形式写 参数二: 其他 checkbox 的 name ...
- http://www.blogjava.net/zhangchao/archive/2011/05/26/351051.html
http://www.blogjava.net/zhangchao/archive/2011/05/26/351051.html
- Codeforces 528D Fuzzy Search(FFT)
题目 Source http://codeforces.com/problemset/problem/528/D Description Leonid works for a small and pr ...
- Android开发环境搭建全程演示(jdk+eclipse+android sdk)
全程演示android开发环境的搭建过程,无需配置环境变量.所有软件都是写该文章时最新版本 一 相关下载 (1) java JDK下载: 进入该网页: http://java.sun.com/java ...
- The name does not exist in the namespace error in XAML
方法1:In the solution property page, check the platform of the assembly that contains "UpdatingMe ...
- iOS学习37数据处理之CoreData
1. CoreData数据库框架的优势 1> CoreData历史 CoreData数据持久化框架是Cocoa API 的一部分,首次在iOS5版本的系统中出现,它允许按照实体-属性-值模型组织 ...
- BZOJ3934 : [CQOI2015]标识设计
轮廓线插头DP. 设$f[i][j][a][b][c][d][e]$表示考虑到了$(i,j)$,轮廓线上3个下插头的位置分别为$a,b,c$,是否有右插头,已经放了$e$个$L$的方案数. 然后直接D ...
- Document 按照xml格式输出
private void GetXMLDocument(Document doc) { OutputFormat format1 = new OutputFormat(" ", t ...