【AMPPZ2014】【BZOJ4146】Divisors
来源:互联网 发布:知乎 欧猪四国是哪四国 编辑:程序博客网 时间:2024/06/07 01:46
Description
给定一个序列a[1],a[2],…,a[n]。求满足i!=j且a[i]|a[j]的二元组(i,j)的个数。
Input
第一行包含一个正整数n(1<=n<=2000000),表示序列长度。
第二行包含n个正整数,依次表示a[1],a[2],…,an。
Output
一个整数,即满足条件的二元组的个数。
Sample Input
5
2 4 5 2 6
Sample Output
6
HINT
满足条件的6组分别为(1,2),(1,4),(1,5),(4,1),(4,2),(4,5)。
Source
鸣谢Claris上传
计数器+枚举因子
调和级数复杂度
(但是我跑的好慢
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#define MAXN 2000010#define LL long long#define GET (ch>='0'&&ch<='9')using namespace std;int n,maxn;int a[MAXN],c[MAXN],f[MAXN];LL ans;void in(int &x){ char ch=getchar();x=0; while (!GET) ch=getchar(); while (GET) x=x*10+ch-'0',ch=getchar();}int main(){ in(n); for (int i=1;i<=n;i++) in(a[i]),c[a[i]]++,maxn=max(maxn,a[i]); for (int i=1;i<=maxn;i++) for (int j=i;j<=maxn;j+=i) f[j]+=c[i]; for (int i=1;i<=maxn;i++) ans+=(LL)(c[i])*f[i]; ans-=n;cout<<ans<<endl;}
0 0
- 【bzoj4146】 [AMPPZ2014]Divisors
- 【AMPPZ2014】【BZOJ4146】Divisors
- 【bzoj4146】[AMPPZ2014]Divisors
- bzoj4146 [AMPPZ2014]Divisors
- bzoj 4146: [AMPPZ2014]Divisors 暴力+调和级数
- Divisors
- Divisors
- Divisors
- 【AMPPZ2014】【BZOJ4143】The Lawyer
- 【AMPPZ2014】【BZOJ4147】Euclidean Nim
- 【bzoj4143】[AMPPZ2014]The Lawyer
- 【bzoj4144】[AMPPZ2014]Petrol
- 【bzoj4152】[AMPPZ2014]The Captain
- 【bzoj4145】[AMPPZ2014]The Prices
- 【AMPPZ2014】【BZOJ4145】The Prices
- 【bzoj4147】 [AMPPZ2014]Euclidean Nim
- 【bzoj4149】[AMPPZ2014]Global Warming
- 【bzoj4151】 [AMPPZ2014]The Cave
- Error inflating class fragment解决方法
- 进黑马的第一天
- Comparable接口的实现和使用
- CodeForces 405B
- 不变模式
- 【AMPPZ2014】【BZOJ4146】Divisors
- IBM的云平台Bluemix使用初体验——创建PHP Web 应用程序,添加并使用语言翻译服务
- OAuth 1.0的工作流
- javascript中对象的深度克隆
- Android读取通讯录联系人
- 多维数组指针问题
- 【POJ 1330】 Nearest Common Ancestors(LCA)
- 代理设计模式
- Python shutil模块