POJ 1840

POJ-1840   Eqs 
 
    Q :题目给出很直观,不再多讲。
   
    解题思路 :
  • 像以往的题目一样,本题直观上就是把所有结果统统便利一边,但是又被时间卡住了。那么时间复杂度o(1005) .
  • 想想hash,查找功能,所以可以将前三个变量的结果先存入,然后再将后连个变量的结果得出去查表,是否合理,然后计数.
  • 那么等式分为  a1x13+ a2x23+ a3x3=-(a4x43+ a5x53).但不意味着代码的复杂度为O(1003+1002);因为xi(i=0,1,2,3,4,5)属于[-50,50]中除零意外的整数.
  • 所以你可以发现,例如当 x1= -50,x2=-50,x3=-50 ,x4=50,x5=50 x1= 50,x2=50,x3=50 ,x4=-50,x5=-50。可在
  • 将等式两端全部取绝对值后和二为一。 也就是说x1 与 x4仅仅只用从-50到-1。则代码复杂度为(50*1002+50*100);
  • 其次就是hash 的查找功能了,等式两边是立方后的,所以就直接用除余法进行散列,但是重点在处理冲突上,用线性,比二次好的多。

代码如下

 

 

Problem: 1840 User: AKsoftware
Memory: 1492K Time: 219MS
Language: G++ Result: Accepted
  

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值