POJ 1840 Eqs
这个题是对哈希表的运用练习。
题目大意:
已知a1x13+ a2x23+ a3x33+ a4x43+ a5x53=0 ,其中系数 ai∈[-50,50] 自变量xi∈[-50,0)∪(0,50],给出系数a1~a5,
求方程解的个数。
不过直接用的map,这算不算哈希表??
下面是代码:
#include <stdio.h> #include <map> using namespace std; int main() { int a[5],i; while(scanf("%d",&a[0])!=EOF) { int i,j,k,ans=0; map <int ,int> map1; for(i=1; i<5; i++) { scanf("%d",&a[i]); } for (int i =-50; i <=50; i++) { for (int j =-50; j <=50; j++) { if (i ==0|| j ==0) { continue; } int temp = i * i * i * a[0] + j * j * j * a[1]; if (map1.find(temp) == map1.end()) { map1[temp] =1; } else { map1[temp]++; } } } for (int i =-50; i <=50; i++) { for (int j =-50; j <=50; j++) { for (int k =-50; k <=50; k++) { if (i ==0|| j ==0|| k ==0) { continue; } int temp = i * i * i * a[3] + j * j * j * a[4] + k * k * k * a[2]; if (map1.find(0- temp) == map1.end()) { continue; } else { ans += map1[0- temp]; } } } } printf("%d\n",ans); } }