hdu 5207
2015-04-18 22:03
78 查看
题目大意: 给定一组数,取两个数,使得gcd最大. 分析: 先nlogn预处理出105所有数的因子,然后用cnt数组计数给定数的因子个数,再找到最大的i,满足cnt[i]>=2,复杂度为nlogn。 学习一下这种思路
#include<cstdio> #include<cstring> #include<iostream> #include<string> #include<algorithm> #include<cmath> #include<queue> #include<stack> #include<vector> #defineINF #definemaxn100100 usingnamespacestd; typedeflonglongLL; intvist[maxn],cnt[maxn]; intmm; voidsolve() { for(inti=2;i<=mm;i++) { for(intj=i;j<=mm;j+=i) { if(vist[j]) cnt[i]+=vist[j]; } }//nlogn的复杂度 } intmain() { intt,a[maxn],n; scanf("%d",&t); for(intii=1;ii<=t;ii++) { scanf("%d",&n); memset(vist,0,sizeof(vist)); for(inti=1;i<=n;i++) { scanf("%d",&a[i]); vist[a[i]]++; mm=max(mm,a[i]); } memset(cnt,0,sizeof(cnt)); solve(); cnt[1]=2; printf("Case#%d:",ii); for(inti=mm;i>=1;i--) if(cnt[i]>=2) { printf("%d\n",i); break; } } return0; }
相关文章推荐
- hdu 5207(数论+枚举)
- hdu 5207 Greatest Greatest Common Divisor【筛法】【思维】
- HDU 5207 Greatest Greatest Common Divisor(暴力)
- HDU 5207 Greatest Greatest Common Divisor
- HDU 5207 Greatest Greatest Common Divisor
- Greatest Greatest Common Divisor hdu 5207
- hdu 5207 hash统计
- hdu 5207 Greatest Greatest Common Divisor(数论)
- hdu 5207 Greatest Greatest Common Divisor
- HDU - 5207(素数筛法判断)
- HDU 5207 Greatest Greatest Common Divisor
- hdu 5207 Greatest Greatest Common Divisor(筛法求公约数)
- hdu 5207 求数组中任取两数的gcd最大值(灵活题)
- 寒假集训3 c 求N个数中 取两个数的最大公约数 hdu 5207
- 水4_HDU_5207
- hdu 5207 Greatest Greatest Common Divisor
- HDU5207
- 【瞎搞】 HDU 5207 Greatest Greatest Common Divisor
- hdu 5207 BestCoder Round #38 ($) Greatest Greatest Common Divisor
- Hdu 5207 Greatest Greatest Common Divisor(数论)