本来以为是一道水题,好吧,做了才知道,出题的人有多牛。二分搜索是不可能的了,因为会超内存。。。

看到别人的搜索两个集合的提示,我就自己一边去想了。终于想出来了:

可以这样做,先把每两个集合的和值枚举出来并成一个大集合,排序,去重。剩下一个集合,于是,共三个集合。

枚举小的那个集合的元素,搜索两个大的集合。可以这样做,定义一个初始为指向最小元素的指针,一个指向最大元素的指针(两个指针是指向不同的集合的),两者之和相等则返回,小于则移动小指针+1,否则移动大指针-1.直至二者相等退出。然后再用两个指针交换指向另一个集合,重复上述过程。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define LL __int64
using namespace std; LL A[41000],B[41000];
LL C[41000];
int pa,pb;
LL S[5][250]; bool find_t(LL a){
int tma,tmi;
LL tmp;
tma=pa,tmi=1;
while(tma>=1&&tmi<=tma&&tmi<=pb){
tmp=A[tma]+B[tmi];
if(tmp==a) return true;
else if(tmp<a) tmi++;
else tma--;
}
tma=pb,tmi=1;
while(tma>=1&&tmi<=tma&&tmi<=pa){
tmp=A[tmi]+B[tma];
if(tmp==a) return true;
else if(tmp<a) tmi++;
else tma--;
}
return false;
} bool cmp(LL a,LL b){
if(a<b) return true;
return false;
} int main(){
int T,n;
scanf("%d",&T);
while(T--){
scanf("%d",&n);
for(int i=0;i<5;i++){
for(int j=1;j<=n;j++)
scanf("%I64d",&S[i][j]);
}
pa=pb=0;
C[0]=A[0]=B[0]=0; int tb=0;
for(int i=0;i<=1;i++){
pb=0;
for(int j=1;j<=n;j++){
if(tb==0)
C[++pb]=C[0]+S[i][j];
else{
for(int k=1;k<=tb;k++)
B[++pb]=C[k]+S[i][j];
}
}
if(tb==0)
tb=n;
else tb=tb*n;
} tb=0;
for(int i=2;i<4;i++){
pa=0;
for(int j=1;j<=n;j++){
if(tb==0)
C[++pa]=C[0]+S[i][j];
else{
for(int k=1;k<=tb;k++)
A[++pa]=C[k]+S[i][j];
}
}
if(tb==0)
tb=n;
else tb=tb*n;
} int t=1;
sort(A+1,A+pa+1,cmp);
for(int i=2;i<=pa;i++)
if(A[i]!=A[t]){
A[++t]=A[i];
}
pa=t; t=1;
sort(B+1,B+pb+1,cmp);
for(int i=2;i<=pb;i++)
if(B[i]!=B[t]){
B[++t]=B[i];
}
pb=t; bool flag=false; for(int j=1;j<n;j++){
if(find_t(-S[4][j])){
flag=true;
break;
}
} if(flag)
printf("Yes\n");
else printf("No\n");
}
return 0;
}

  

HDU 4334 Contest 4的更多相关文章

  1. HDU 4334 Trouble (暴力)

    Trouble Time Limit: 5000MS   Memory Limit: 32768KB   64bit IO Format: %I64d & %I64u Submit Statu ...

  2. HDU 5045 Contest(状压DP)

    Problem Description In the ACM International Collegiate Programming Contest, each team consist of th ...

  3. hdu - 5045 - Contest(国家压缩dp)

    意甲冠军:N个人M通过主打歌有自己的期望,每个问题发送人玩.它不能超过随机播放的次数1,追求最大业绩预期 (1 ≤ N ≤ 10,1 ≤ M ≤ 1000). 主题链接:pid=5045" ...

  4. [ACM] hdu 5045 Contest (减少国家Dp)

    Contest Problem Description In the ACM International Collegiate Programming Contest, each team consi ...

  5. HDU–5988-Coding Contest(最小费用最大流变形)

    Coding Contest Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)To ...

  6. HDU 4334 Trouble

    Trouble Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  7. hdu 5045 Contest(状态压缩DP)

    题解:我们使用一个二位数组dp[i][j]记录进行到第i个任务时,人组合为j时的最大和(这里的j我们用二进制的每位相应一个人). 详细见代码: #include <iostream> #i ...

  8. HDU 5045 Contest

    pid=5045">主题链接~~> 做题感悟:比赛时这题后来才写的,有点小尴尬.两个人商议着写写了非常久才写出来,I want to Powerful ,I believe me ...

  9. Trouble HDU - 4334

    Hassan is in trouble. His mathematics teacher has given him a very difficult problem called 5-sum. P ...

随机推荐

  1. java中继承关系学习小结

    继承:把多个类中同样的内容提取出来.定义到一个类中,其它类仅仅须要继承该类.就能够使用该类公开的属性和公开的方法.   继承的优点:提高代码的复用性.提高代码的可维护性.让类与类之间产生关系,是多态存 ...

  2. Codeforces Round #168 (Div. 2)---A. Lights Out

    Lights Out time limit per test 2 seconds memory limit per test 256 megabytes input standard input ou ...

  3. 自醒的觉悟与力量——leo鉴书59

    30岁之后由于看得书多起来,阅读和写作也都有了自己的套路,与此相对的写书评之前须要看几遍书,然后我才干下笔的作者和作品越来越少了. 崔卫平是这种作者,而<正义之前>是我看了两遍才開始写评的 ...

  4. 在eclipse中关联android源代码

    1打包源代码成jar: 1 新建一个java项目 2  import  想打包的源代码文件 3 export 这个文件 : 选择java->jar file .  这里会让你选择输出路径 2 加 ...

  5. 一个JavaWeb项目中使用的部分技术

    -- 2015年8月8日 1. Web框架: Spring+ SpringMVC + MyBatis Spring: 作为容器.工厂,用于解耦以及管理对象生命周期. 整合各类框架和依赖. MVC  : ...

  6. System.DirectoryServices Namespace

    https://docs.microsoft.com/en-us/dotnet/api/system.directoryservices?view=netframework-4.7 The Syste ...

  7. ES等待任务——是master节点上的task任务

    等待中的任务编辑 有一些任务只能由主节点去处理,比如创建一个新的 索引或者在集群中移动分片.由于一个集群中只能有一个主节点,所以只有这一节点可以处理集群级别的元数据变动.在 99.9999% 的时间里 ...

  8. 【POJ 2182】Lost Cows

    [题目链接] http://poj.org/problem?id=2182 [算法] 树状数组 + 二分 [代码] #include <algorithm> #include <bi ...

  9. js最简单的-点击小图放大

    js最简单的-点击小图放大 标签(空格分隔): js <html> <body> <img class="imgview" src="{$v ...

  10. 阿里云服务器用Docker配置运行nginx并访问

    一.Docker拉取nginx镜像 docker pull nginx:1.12.2 这里是下载的是nginx的1.12.2版本,其他版本的镜像请访问https://hub.docker.com/r/ ...