标签:int class sample poj min sea bsp ide desc
Time Limit: 5000MS | Memory Limit: 65536K | |
Total Submissions: 14093 | Accepted: 6927 |
Description
Input
Output
Sample Input
37 29 41 43 47
Sample Output
654
Source
#include<iostream> 49664K 610MS #include<cstdio> #include<cstring> using namespace std; short hash[25000001]; //hash[sum]表示值等于sum的的解的个数(多对1映射) int main() //用int会MLE<span id="transmark"></span> { int a1,a2,a3,a4,a5; //系数 scanf("%d%d%d%d%d",&a1,&a2,&a3,&a4,&a5); { memset(hash,0,sizeof(hash)); for(int x1=-50; x1<=50; x1++) { if(!x1) continue; for(int x2=-50; x2<=50; x2++) { if(!x2) continue; int sum=(a1*x1*x1*x1+a2*x2*x2*x2); if(sum<0) sum+=25000000; hash[sum]++; } } int num=0; for(int x3=-50; x3<=50; x3++) { if(!x3) continue; for(int x4=-50; x4<=50; x4++) { if(!x4) continue; for(int x5=-50; x5<=50; x5++) { if(!x5) continue; int sum=a3*x3*x3*x3+a4*x4*x4*x4+a5*x5*x5*x5; if(sum>12500000||sum<-12500000) //防止特殊情况发生 continue; if(sum<0) sum+=25000000; if(hash[sum]) num+=hash[sum]; } } } cout<<num<<endl; } return 0; }
#include<iostream> // 1164K 1704MS #include<cstdio> #include<map> using namespace std; int main() { map<int,int>Q; int a,b,c,d,e; scanf("%d%d%d%d%d",&a,&b,&c,&d,&e); Q.clear(); for(int i=-50; i<=50; i++) { if(!i) continue; for(int j=-50; j<=50; j++) { if(!j) continue; int sum=a*i*i*i+b*j*j*j; Q[-sum]++; } } int num=0; for(int i=-50;i<=50;i++) { if(!i) continue; for(int j=-50;j<=50;j++) { if(!j) continue; for(int k=-50;k<=50;k++) { if(!k) continue; int sum=c*i*i*i+d*j*j*j+e*k*k*k; if(Q.count(sum)) num+=Q[sum]; } } } printf("%d\n",num); }
标签:int class sample poj min sea bsp ide desc
原文地址:http://www.cnblogs.com/jhcelue/p/6869302.html