Greatest Greatest Common Divisor hdu 5207
来源:互联网 发布:java应用服务器有那些 编辑:程序博客网 时间:2024/05/18 21:40
Greatest Greatest Common Divisor
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 311 Accepted Submission(s): 132
Problem Description
Pick two numbers ai,aj(i≠j) from a sequence to maximize the value of their greatest common divisor.
Input
Multiple test cases. In the first line there is an integer T , indicating the number of test cases. For each test cases, the first line contains an integer n , the size of the sequence. Next line contains n numbers, from a1 to an . 1≤T≤100,2≤n≤105,1≤ai≤105 . The case for n≥104 is no more than 10 .
Output
For each test case, output one line. The output format is Case #x : ans , x is the case number, starting from 1 , ans is the maximum value of greatest common divisor.
Sample Input
241 2 3 433 6 9
Sample Output
Case #1: 2Case #2: 3
当时的题解是
1002 Greatest Greatest Common Divisor由于出题人业(ying)界(yu)良(zhuo)心(ji),题面十分简洁,给定一组数,取两个数,使得gcd 最大,这里提供两种做法。第一种先nlogn 预处理出105 所有数的因子,然后用cnt 数组计数给定数的因子个数,再找到最大的i ,满足cnt[i]>=2 ,复杂度为nlogn 。第二种先用cnt 计数给定数组,然后倒着枚举答案为d ,计算∑k=1105/dcnt[kd] ,如果sum≥2 ,则d 就是答案,复杂度为nlogn 另外,大于104 数据不超过10 组有两个目的,一是放过nn−−√ 的解法,二是使得数据读入量不大。选择的是第二种方法,选得输入的最大的数,然后 倒着向前搜索, 如果成立sum>=2 则其肯定为最大公约数。#include<stdio.h>#include<string.h>#define maxn 100010int main(){int bbs,n,m,i,j,max;int s[maxn];scanf("%d",&bbs);int k=1;while(bbs--){memset(s,0,sizeof(s));max=0;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&m);s[m]++;if(m>max)max=m;}int sum;for(i=max;i>=0;i--){sum=0;for(j=i;j<=max;j+=i){sum+=s[j];if(sum>=2){break;}}if(sum>=2){printf("Case #%d: %d\n",k++,i);break;}}}return 0;}
0 0
- HDU 5207 Greatest Greatest Common Divisor
- 【瞎搞】 HDU 5207 Greatest Greatest Common Divisor
- Greatest Greatest Common Divisor hdu 5207
- hdu 5207 Greatest Greatest Common Divisor
- hdu 5207 Greatest Greatest Common Divisor
- HDU 5207 Greatest Greatest Common Divisor
- HDU 5207Greatest Greatest Common Divisor
- HDU ACM 5207 Greatest Greatest Common Divisor
- HDU 5207 Greatest Greatest Common Divisor
- HDU 5207 Greatest Greatest Common Divisor
- Greatest Greatest Common Divisor
- Hdu 5207 Greatest Greatest Common Divisor(数论)
- hdu 5207 Greatest Greatest Common Divisor(数论)
- HDU 5207 Greatest Greatest Common Divisor(暴力)
- hdu 5207 Greatest Greatest Common Divisor【筛法】【思维】
- hdu 5210 Greatest Greatest Common Divisor
- Greatest Greatest Common Divisor HD5207
- Greatest common divisor
- Linux下搭建Java环境变量并实现第一个Java小程序
- 鸡兔同笼
- Java final 修饰符的用法总结
- Extracting Data from array of hashes Ruby
- 设置android项目与sdk相关联
- Greatest Greatest Common Divisor hdu 5207
- 项目中QA职责
- 面向对象(三)
- Oracle修改监听IP地址---- hostname必须填127.0.0.1的问题----除本机外其它电脑连接不了本机oracle数据服务器
- this 在Java中的应用
- main.c
- Android 线程之HandlerThread
- 遍历二叉树
- 切面条