hdoj 1496 Equations (HASH)

题目大意:方程 a*x1^2+b*x2^2+c*x3^2+d*x4^2=0 

       a,b,c,d的范围为[-50,50] ,     x1,x2,x3,x4的范围为[-100,100].

       现给出a,b,c,d,求x1,x2,x3,x4的解的个数.

 

思路:先求a*x1^2+b*x2^2 所有的值,保存于哈希表中。再查找-(c*x3^2+d*x4^2)是否保存于哈希表中。

 

问题是解决哈希表中的冲突

 

 

 线性探测再散列技术

  即:当 h(k)位置已经存储有元素的时候,依次探查 (h(k)+i) mod S, i=1,2,3…,直到找到空的存储单元为止。其中, S为 数组长度。

  特别地,如果将数组扫描一圈仍未发现空单元,则说明哈希表已满,这会带来麻烦,但是,该情况完全可以通过扩大数组范围来避免。 

 

看了别人的代码自己重新写了一遍,46ms。学习了。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值