HDU 2141 哈希表或者二分

来源:互联网 发布:重庆时时彩组号软件 编辑:程序博客网 时间:2024/05/17 04:00

题目大意:

Ai + Bj + Ck == X,是否能成立


思路:

因为是l*n*m = 500 * 500 * 500,还有s的1000,如果暴力枚举肯定是超时。我之前思考过用vector动态处理内存,然后用erase和unique+sort将里面所有的重复的元素消除,不过好像超时了。

然后就想到将前两项的和加在一起,在用二分法判断

或者用哈希表,将所有的元素都一个一个的表示出来,然后在取判断即可。


哈希表是400+MS,二分法是900+MS。主要原因在于,哈希表的判断是接近O(1),而二分法是一个log250000,然后1000*500的基数较大,所以差别较大


哈希表的



 二分法:

将数组组合起来。估算一下复杂度即可,判断最大为O(500 * 500 + 1000 * 500 * log250000),log250000可以看做是个位数的即可。



0 0
原创粉丝点击