SSL2667 2017年8月7日提高组T1 呵呵
2017-08-07 21:25
162 查看
2017年8月7日提高组T1 呵呵
Description这天,小A得到了一个序列a[1],a[2]…a
,他想知道有多少个二元组(i,j)满足i!=j且a[i]是a[j]的因数。
Input
第一行有一个正整数n,第二行包含n个整数。
Output
输出一行,表示满足条件的二元组个数。
分析:考虑到跟顺序无关,可以把所有数扔到桶里面,然后对于每一个数,先用组合数统计其本身的贡献,然后暴力查找它的所有倍数即可。
代码
#include <cstdio> using namespace std; int n,a[4000005]; long long ans; int main() { scanf("%d",&n); int max=0; for (int i=1;i<=n;i++) { int x; scanf("%d",&x); a[x]++; if (x>max) max=x; } for (int i=1;i<=max;i++) if (a[i]>0) ans+=a[i]*(a[i]-1); for (int i=1;i<=max;i++) if (a[i]>0) { int p=0; for (int j=2*i;j<=max;j+=i) p+=a[j]*a[i]; ans+=p; } printf("%lld",ans); }
相关文章推荐
- 2017年8月7日提高组T1 呵呵
- 【SSLGZ 2667】2017年8月7日提高组T1 呵呵
- 2017年8月7日提高组T1 呵呵
- 2017年8月7日提高组T2 选数
- SSL2669 2017年8月7日提高组T1 选数(dfs)
- 2017年8月7日提高组T1 根
- 2017年8月7日提高组T1 选数
- SSL2668 2017年8月7日提高组T1 根(dfs)
- 2017年8月7日提高组T3 选数
- 2017年8月7日提高组T1 选数
- 初学Flash的积累(一周一总结)提高以后开发速度---呵呵 我记不住这些东东
- 用QQ提问的技巧,用了之后可以提高效率,呵呵。
- 用QQ提问的技巧,用了之后可以提高效率,呵呵。
- 使用内存映射文件来提高你程序的性能
- wikioi-天梯-提高一等-启发式搜索-1225:八数码难题
- 开课提醒今天下午3:30 | 10大秘诀提高应用用户留存率
- 提高MySQL中InnoDB表BLOB列的存储效率的教程
- 提高IIS网站服务器的效率的八种方法 (转载)
- 双ISP实验,呵呵,有点意思
- ListView的效率提高