博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 2141 Can you find it?(二分)
阅读量:5012 次
发布时间:2019-06-12

本文共 977 字,大约阅读时间需要 3 分钟。

题目链接:

【题目大意】:

Give you three sequences of numbers A, B, C, then we give you a number X. Now you need to calculate if you can find the three numbers Ai, Bj, Ck, which satisfy the formula Ai+Bj+Ck = X.

Sample Input

 
3 3 3 1 2 3 1 2 3 1 2 3 3 1 4 10

Sample Output

 
Case 1: NO YES NO
【解题思路】将前两个数组元素合并为一个,在和最后一个进行选择。二分合并后的数组,假设

   if(sort[mid]<ans) left=mid+1;

   else if(sort[mid]>ans) right=mid-1;
   else {flag=true;break;}

代码:

#include 
using namespace std;const int N=505;int A[N],B[N],C[N],D[N*N];bool get(int sort[],int k,int ans)//合并后的数组/数组元素个数/和减去第三个数组元素剩下的值{ bool flag=false; int left=0,right=k,mid; while(left<=right) { mid=(left+right)>>1; if(sort[mid]
ans) right=mid-1; else {flag=true;break;} } return flag;}int main(){ //freopen("1.txt","r",stdin); int l,n,z,m,S,tot=1; bool ok; while(scanf("%d%d%d",&l,&n,&m)!=EOF) { for(int i=0;i

转载于:https://www.cnblogs.com/wzzkaifa/p/6849787.html

你可能感兴趣的文章
android3.2以上切屏禁止onCreate()
查看>>
winform文件迁移工具
查看>>
delphi DCC32命令行方式编译delphi工程源码
查看>>
paip.输入法编程----删除双字词简拼
查看>>
or1200下raw-os学习(任务篇)
查看>>
ZOJ - 3939 The Lucky Week(日期循环节+思维)
查看>>
小花梨的取石子游戏(思维)
查看>>
Ubuntu 18.04安装arm-linux-gcc交叉编译器
查看>>
.net core i上 K8S(一)集群搭建
查看>>
django drf 深入ModelSerializer
查看>>
Android---Menu菜单
查看>>
【资源导航】我所用到过的工具及下载地址
查看>>
监控Tomcat
查看>>
剑指offer编程题Java实现——面试题4后的相关题目
查看>>
简单的社交网络分析(基于R)
查看>>
Http请求工具类 httputil
查看>>
html幻灯效果页面
查看>>
太可怕了!黑客是如何攻击劫持安卓用户的DNS?
查看>>
nginx在Windows环境安装
查看>>
MVC案例——删除操作
查看>>