【SSLGZ 2667】2017年8月7日提高组T1 呵呵
来源:互联网 发布:哈萨克帅哥知乎 编辑:程序博客网 时间:2024/06/05 03:12
问题描述
这天,小A得到了一个序列a[1],a[2]…a[n],他想知道有多少个二元组(i,j)满足i!=j且a[i]是a[j]的因数。
输入
第一行有一个正整数n,第二行包含n个整数。
输出
输出一行,表示满足条件的二元组个数。
样例输入
5
2 4 5 2 6
样例输出
6
算法讨论
枚举每一个数,将它按它的因子翻倍,若倍数在序列中则加一。
#include<cstdio>#include<cstring>using namespace std;int a[2000001],b[2000001],f[2000001];int n,s,max=0;int main(){ //freopen("hehe.in","r",stdin); //freopen("hehe.out","w",stdout); scanf("%d",&n); memset(f,0,sizeof(f)); for (int i=1;i<=n;i++) { scanf("%d",&a[i]); f[a[i]]+=1; if (a[i]>max) max=a[i]; } for (int i=1;i<=n;i++) { if (a[i]==0) continue; int r=0; r=max / a[i]; s+=f[a[i]]-1; for (int j=2;j<=r;j++) if (f[a[i] * j]!=0) s+=f[a[i] * j]; } printf("%d",s); fclose(stdin); fclose(stdout); return 0;}
Pixiv ID:37738689
阅读全文
0 0
- 【SSLGZ 2667】2017年8月7日提高组T1 呵呵
- 2017年8月7日提高组T1 呵呵
- 2017年8月7日提高组T1 呵呵
- 2017年8月7日提高组T1 呵呵
- 【SSLGZ 2670】2017年8月8日提高组T1 作业
- 【SSLGZ 2673】2017年8月9日提高组T1 水题
- 【SSLGZ 2676】2017年8月10日提高组T1 数学
- 【SSLGZ 2682】2017年8月12日提高组T1 YMW的杯子
- 【SSLGZ 2687】2017年8月14日提高组T1 跳跃
- 【SSLGZ 2705】2017年8月17日提高组T1 游戏
- SSL2667 2017年8月7日提高组T1 呵呵
- 【SSLGZ 2783】2017年10月23日提高组T1 摆书
- 【SSLGZ 2813】2017年10月31日提高组T1 注册
- 2017年8月7日提高组T1 根
- 2017年8月8日提高组T1 作业
- 2017年8月8日提高组T1 作业
- 2017年8月8日提高组T1 作业
- 2017年8月9日提高组T1 水题
- Hdu 1875F
- 2017.8.8暑假集训第九天(下午练习赛)
- bzoj1588
- 组合数打表
- Android 经典笔记之一:setOnKeyListener方法事件执行两次
- 【SSLGZ 2667】2017年8月7日提高组T1 呵呵
- 解决 vue component(组件)里面每个.vue文件的style互相影响的问题
- 杭电1002:A+B Problem Ⅱ
- 图形推理
- 【普组模拟赛】马农
- 熟练度=正确的知识 X 大量的刻意练习。
- PostgreSQL+PostGIS的使用
- 在mingw编译环境下为dll添加版本信息
- 算法---穷举