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

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

题意: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.

即给出一个A数组,B数组,C数组,和S个询问,每个询问给出一个X值,问是否存在符合条件的等式。

分析:可以用hash存下a数组和b数组中所有元素的和,然后可以用hash或者二分的方法查找是否存在x-ck即可。

View Code
#include 
#include
#include
using namespace std;const int maxn = 505;const int mod = 600000;const int INF = (1<<30);struct node{ int key; int count;}h[mod];int a[maxn];int b[maxn];int c[maxn];void add(int p){ int k = p%mod; if (k < 0) k += mod; while (h[k].count != 0) { if (h[k].key == p) { h[k].count++; break; } k = (k+1)%mod; } if (h[k].count == 0) { h[k].count++; h[k].key = p; }}bool find(int p){ int k = p%mod; if (k < 0) k += mod; while (h[k].count!=0) { if (h[k].key == p) return true; k = (k+1)%mod; } return false;}int main(){ int i, j,k; int l, n, m, s; int p; int ca = 1; while (scanf("%d %d %d",&l,&m,&n)!=EOF) { memset(h,0,sizeof(h)); for (i=0; i
p || a[l-1]+b[m-1]+c[n-1]

 

转载于:https://www.cnblogs.com/dream-wind/archive/2013/01/29/2881012.html

你可能感兴趣的文章
spring装配集合
查看>>
mysql高可用架构方案之中的一个(keepalived+主主双活)
查看>>
SpringMVC案例2----基于spring2.5的注解实现
查看>>
SpringBoot编写自定义的starter 专题
查看>>
北京服务业占GDP比重达81.7%
查看>>
2016年深圳市服务业占GDP比重首次突破六成
查看>>
Oracle基础(四)pl/sql
查看>>
Woody的Python学习笔记2
查看>>
虚函数相关问题分析
查看>>
js代码从页面移植到文件里失效或js代码改动后不起作用的解决的方法
查看>>
java点滴之volatilekeyword特性
查看>>
python 回溯法 子集树模板 系列 —— 13、最佳作业调度问题
查看>>
java位运算应用
查看>>
Gulp自动化构建工具的简单使用
查看>>
[Java开发之路](6)File类的使用
查看>>
less01
查看>>
P3373 【模板】线段树 2 区间求和 区间乘 区间加
查看>>
不用asp.net MVC,用WebForm照样能够实现MVC
查看>>
更进一步
查看>>
iOS CoreData介绍和使用(以及一些注意事项)
查看>>