Codeforces Round #Pi (Div. 2) C
2016-03-14 10:53
246 查看
题意 : 给你一个序列,和 K ,选3 个数,下标严格递增, 满足 为递增的等比数列, 等比为K 思路 : 先统计所有数的个数,枚举等比数列的中间数 A, 计算 A 之后的 A*K的个数, A之前的 A /K 的个数,相乘
(打比赛脑残,还想到啪啪什么的,爱残了)
(打比赛脑残,还想到啪啪什么的,爱残了)
#include<iostream> #include<cstdio> #include<cstring> #include<string> #include<cmath> #include<algorithm> #include<map> #include<set> #include<vector> #include<queue> #include<stack> //#include<bits/std c++.h> using namespace std; typedef long long LL; typedef unsigned long long ULL; const LL MOD = 1e7 + 7; const LL maxn = 1e5 + 131; map<LL,LL> Num1; map<LL,LL> Num2; LL Line[maxn<<1]; LL N,K; int main() { while(cin >> N >> K) { LL Sum = 0; Num1.clear(); Num2.clear(); for(int i = 1; i <= N; ++i) cin >> Line[i], Num1[Line[i]] ++; for(int i = N; i >= 1; --i) { Num2[Line[i]]++; if(i == 1 || i == N )continue; if(Num2.count(Line[i] * K) && !(Line[i] % K)) { LL L,R; if(Line[i] == Line[i]* K) R = Num2[Line[i]*K] - 1; else R = Num2[Line[i]*K]; L = Num1[Line[i] / K] - Num2[Line[i] / K]; Sum += (L * R); } } cout << Sum << endl; } }
相关文章推荐
- POJ 3243 // HDU 2815(改下输出,加个判断)
- HDU 1573
- POJ 2115
- HDU 5297
- git命令大全
- HDU 5297
- HDU 5288 OO’s Sequence
- HNUOJ 13341
- WebRTC Android API
- Find Lines
- Java代码优化--尽可能地使用stack(栈)变量(方法内部的局部变量)
- lightoj 1017 Brush (III) 基础DP
- Java中static关键字详述
- Fragment的使用(四)
- 【转】MyBatis学习总结(七)——Mybatis缓存
- python threading
- ceph 自动化自动化安装
- 你知道 Linux 内核是如何构建的吗?
- java中volatile关键字的含义
- 线程池学习总结---原理及实现