CF 567C. Geometric Progression
来源:互联网 发布:机械常最用有限元软件 编辑:程序博客网 时间:2024/05/21 14:39
题目链接
题意:
给出一个序列,求公比为k,且长度为3的子等比序列个数。(1 ≤ n, k ≤ 2e5)( - 1e9 ≤ ai ≤ 1e9)
解法:
dp[0][x]表示当前x的数量。
dp[1][x]表示当前以值x结尾,长度为2且公比为K的等比数列数量。
代码:
#include<cstring>#include<iostream>#include<map>using namespace std;#define for1(a, n) for (int (a) = 1; (a) <= (n); (a)++)#define mem(a,x) memset(a,x,sizeof a)typedef long long ll;const int maxn=2e5+0.5 ;int n,K;map<int,ll >dp[2];int a[maxn+10];void solve(){ dp[0].clear(); dp[1].clear(); ll ans=0; for1(i,n) { int x=a[i]; if(x%K==0) { ans+=dp[1][x/K]; dp[1][x]+=dp[0][x/K]; } dp[0][x]++; } cout<<ans<<endl;}int main(){ std::ios::sync_with_stdio(false); while(cin>>n>>K) { for1(i,n) cin>>a[i]; solve(); } return 0;}
#include<cstring>#include<iostream>#include<map>using namespace std;#define for1(a, n) for (int (a) = 1; (a) <= (n); (a)++)#define mem(a,x) memset(a,x,sizeof a)typedef long long ll;const int maxn=2e5+0.5 ;int n,K;map<int,int >mp;int cnt[maxn+10],a[maxn+10];ll dp[maxn+10];int ID(int x){ if(!mp.count(x)) { int k=mp.size(); mp[x]=k; return k; } return mp[x];}void solve(){ mp.clear(); mem(cnt,0); mem(dp,0); ll ans=0; for1(i,n) { int x=a[i],y=ID(x); if(x%K==0) { int t=ID(x/K);//这里不能直接用mp ans+=dp[t]; dp[y]+=cnt[t]; } cnt[y]++; } cout<<ans<<endl;}int main(){ std::ios::sync_with_stdio(false); while(cin>>n>>K) { for1(i,n) cin>>a[i]; solve(); } return 0;}
0 0
- CF-567C - Geometric Progression
- CF 567C. Geometric Progression
- CF 567C(Geometric Progression-map)
- codeforces(567C)-- Geometric Progression
- codeforces 567C Geometric Progression
- Codeforces 567C Geometric Progression
- CodeForces 567C Geometric Progression
- CodeForces 567C Geometric Progression
- codeforces#314C&567C Geometric Progression
- codeforce 567c Geometric Progression(map)
- codeforces 567C Geometric Progression (map维护)
- Codeforces 567C Geometric Progression (离散 + DP)
- CodeForces 567C Geometric Progression【思维+map】
- CodeForces #Pi C.Geometric Progression
- CF Geometric Progression (DP和map)
- codeforces 567E C. Geometric Progression(dp+STL)
- CodeForces 567C. Geometric Progression(map 数学啊)
- CodeForces 567C. - Geometric Progression(解题报告)
- JAVA中校验密码的正则表达式
- ssh client在连接linux的时候 报 Algorithm negotiation failed
- Mac上制作U盘启动盘
- 《Python》之input和raw_input
- GridView getChildCount
- CF 567C. Geometric Progression
- 【心情】codeforces涨分啦!
- AndroidStudio2.2正式版已发布,来尝鲜吧,顺便附上一些小福利
- HTML中消除文本框的高亮边框
- POJ题目分类(转自kuangbin)
- codeforce 719b 贪心
- 第4章 构筑测试体系 _第5章 重构列表
- CodeIgniter最基础配置安装教程
- 抽象类和抽象方法