POJ 1840 Eqs
2012-11-21 09:56
531 查看
给出一个5元3次方程,输入其5个系数,求它的解的个数
把方程变个形,然后左右对拍。
注意,map需要记录值出现的次数,因为若x1 =a, x2=b ,x3=c ,x4=d,x5=e时,与 x1=b, x2=a ,x3=c ,x4 =d, x5=e 代入方程后都得到值0,那么他们视为不同的解。
把方程变个形,然后左右对拍。
注意,map需要记录值出现的次数,因为若x1 =a, x2=b ,x3=c ,x4=d,x5=e时,与 x1=b, x2=a ,x3=c ,x4 =d, x5=e 代入方程后都得到值0,那么他们视为不同的解。
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <map> using namespace std; map<long long,int> mp; int main() { long long i,j,k,l,o,cnt; long long c[5]; long long tll; for (i=0; i<5; i++) { scanf("%lld",c+i); } cnt=0; mp.clear(); for (i=-50; i<=50; i++) { if (i == 0) continue; for (j=-50; j<=50; j++) { if (j == 0) continue; tll=i*i*i*c[0]+j*j*j*c[1]; tll=-tll; if (mp.find(tll) != mp.end()) { mp[tll]++; } else mp[tll]=1; } } for (i=-50; i<=50; i++) { if (i == 0) continue; for (j=-50; j<=50; j++) { if (j == 0) continue; for (k=-50; k<=50; k++) { if (k == 0) continue; tll=i*i*i*c[2]+j*j*j*c[3]+k*k*k*c[4]; if (mp.find(tll) != mp.end()) cnt+=mp[tll]; } } } printf("%lld\n",cnt); }
相关文章推荐
- POJ 1840Eqs(hash)
- POJ-1840-Eqs
- Eqs - poj 1840(hash)
- POJ 1840 Eqs
- POJ 1840 Eqs
- POJ1840——哈希——Eqs
- Poj 1840 Eqs(哈兮+复杂度)
- poj 1840 Eqs
- POJ 1840 Eqs (hash)
- POJ 1840 Eqs
- POJ 1840 Eqs(简单hash入门)
- POJ1840: Eqs(hash问题)
- POJ-1840 Eqs【Hash】
- poj1840--Eqs
- 【POJ1840】Eqs
- STL的应用 POJ 1840 Eqs 题解
- poj1840——Eqs
- poj 1840 Eqs
- poj 1840 Eqs (hash)
- POJ 1840 Eqs 暴力哈希