ZZULI 1902: 985的因子对难题
来源:互联网 发布:实用数据再分析法 pdf 编辑:程序博客网 时间:2024/05/17 20:54
1902: 985的因子对难题Time Limit: 2 Sec Memory Limit: 128 MBSubmit: 156 Solved: 45SubmitStatusWeb BoardDescription985有n个正整数,他想知道存在多少个不同的因子对(a[i], a[j])使得1 <= i, j <= n && i != j && a[j] % a[i] == 0,其中i和j是元素的下标。特别地,他认为(a[i],a[j])与(a[j],a[i])是一样的因子对。Input第一行输入一个整数t,代表有t组测试数据。每组数据占两行,第一行输入一个n代表元素个数,下面一行输入n个整数a[]。注:1 <= t <= 30,1 <= n <= 1e5,1 <= a[] <= 1e6。Output一个整数代表最后的答案。Sample Input251 2 3 4 552 2 2 2 2Sample Output510HINTSourcehpuSubmitStatusWeb Board很简单记录下每个a[i]出现的次数然后对a[i]排序去重最后类似于筛素数的方法筛选出来就好了
#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <queue>#include <stack>using namespace std;const int MAXN=1e5+10;int a[MAXN];int num[MAXN*10];int main(){ int T; scanf("%d",&T); while(T--){ int n; scanf("%d" ,&n); memset(num,0,sizeof(num)); for(int i = 1; i <= n; i++ ){ scanf("%d",&a[i]); num[a[i]]++; } sort(a + 1, a + n + 1); int k=unique(a+1,a+1+n)-a;//去重函数 int sum=0; k--;// printf("%d~~~~\n",k); for(int i=1;i<=k;i++){ sum=sum+(num[a[i]]-1)*(num[a[i]])/2; for(int j=a[i]*2;j<=a[k];j+=a[i]){ sum+=num[a[i]]*num[j]; } } printf("%d\n",sum); } return 0;}
0 0
- zzuli 1902 (985的因子对难题)
- ZZULI 1902: 985的因子对难题
- zzuli 1902 985的因子对难题
- ZZULI OJ 1902: 985的因子对难题
- 1902: 985的因子对难题
- zzulioj 1902( 985的因子对难题)
- 1902: 985的因子对难题
- 【zzulioj 1902 985的因子对难题】
- 985因子对难题
- 【郑轻】[1902]985的因子对难题
- 【多校训练】ZZUliOJ 1902 985的因子对难题
- zzulioj 1902 (985的因子对难题)
- zzulioj 1902: 985的因子对难题 [思维]
- 【hpu oj 1022: 985的因子对难题 [数学]】
- ZZULI OJ 1898: 985的数字难题
- ZZULI OJ 1897: 985的红绿灯难题
- ZZULI OJ 1894: 985的方格难题
- zzuli 1899: 985的最大和难题
- BZOJ 1497 最小割
- ODB库安装使用简介
- Linux下用户组、文件权限详解
- 解决菜单Menu图标不加载的问题
- 二叉树叶节点和
- ZZULI 1902: 985的因子对难题
- Android基础:WebView
- C++ STL--stack/queue 的使用方法
- 史上最全 Android 面试资料集合
- 下载过程中修改文件名
- Oracle删除数据如何恢复数据
- 什么是NoSql
- Generating all permutations of a given string(JAVA)
- 无刷新提交表单(php+js+ajax简单实例 )