标签:
题目:给定一个数组,任取三个数ai,aj,ak 满足 i<j<k && ai *q*q == aj * q == ak .
这是大神的代码,用心去感受:
1 map<long long ,long long >c1,c2; 2 3 long long n,k; 4 int main() 5 { 6 long long ans=0; 7 scanf ("%I64d %I64d",&n,&k); 8 for(int i=0;i<n;i++) 9 { 10 long long temp; 11 scanf ("%I64d",&temp); 12 if(temp%(k*k)==0) ans+=c1[temp/k]; 13 if(temp%k==0) c1[temp]+=c2[temp/k]; 14 c2[temp]++; 15 } 16 printf("%I64d\n",ans); 17 return 0; 18 }
标签:
原文地址:http://www.cnblogs.com/bei-insomia/p/4717657.html