poj 1840 Eqs

http://162.105.81.212/JudgeOnline/problem?id=1840

枚举+哈希

开个char hash[37500001]飘逸的水过去- -

#include<iostream> using namespace std; #define MAX 37500001 #define ADD 18750000 char hash[MAX]; int main() { int i, j, k, a1, a2, a3, a4, a5, tmp, ret; while(scanf("%d%d%d%d%d", &a1, &a2, &a3, &a4, &a5) == 5) { ret = 0; memset(hash, 0, sizeof(hash)); for(i=-50; i<=50; i++) { if(!i) continue; for(j=-50; j<=50; j++) { if(!j) continue; for(k=-50; k<=50; k++) { if(!k) continue; tmp = a1*i*i*i + a2*j*j*j + a3*k*k*k; tmp += ADD; hash[tmp]++; } } } for(i=-50; i<=50; i++) { if(!i) continue; for(j=-50; j<=50; j++) { if(!j) continue; tmp = a4*i*i*i + a5*j*j*j; tmp = -tmp; tmp += ADD; if(hash[tmp]) ret += hash[tmp]; } } printf("%d/n", ret); } return 0; }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值