hdu 5207
題目大意:
給定一組數,取兩個數,使得gcd最大.
分析:
先nlogn預處理出105所有數的因子,然后用cnt數組計數給定數的因子個數,再找到最大的i,滿足cnt[i]>=2,復雜度為nlogn。
學習一下這種思路
1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<string> 5 #include<algorithm> 6 #include<cmath> 7 #include<queue> 8 #include<stack> 9 #include<vector> 10 #define INF 11 #define maxn 100100 12 using namespace std; 13 typedef long long LL; 14 int vist[maxn],cnt[maxn]; 15 int mm; 16 void solve() 17 { 18 for(int i=2;i<=mm;i++) 19 { 20 for(int j=i;j<=mm;j+=i) 21 { 22 if(vist[j]) 23 cnt[i]+=vist[j]; 24 } 25 }//nlogn 的復雜度 26 } 27 28 int main() 29 { 30 int t,a[maxn],n; 31 scanf("%d",&t); 32 for(int ii=1;ii<=t;ii++) 33 { 34 scanf("%d",&n); 35 memset(vist,0,sizeof(vist)); 36 for(int i=1;i<=n;i++) 37 { 38 scanf("%d",&a[i]); 39 vist[a[i]]++; 40 mm=max(mm,a[i]); 41 } 42 memset(cnt,0,sizeof(cnt)); 43 solve(); 44 cnt[1]=2; 45 printf("Case #%d: ",ii); 46 for(int i=mm;i>=1;i--) 47 if(cnt[i]>=2) 48 { 49 printf("%d\n",i); 50 break; 51 } 52 53 } 54 return 0; 55 }
給定一組數,取兩個數,使得gcd最大.
分析:
先nlogn預處理出105所有數的因子,然后用cnt數組計數給定數的因子個數,再找到最大的i,滿足cnt[i]>=2,復雜度為nlogn。
學習一下這種思路
1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<string> 5 #include<algorithm> 6 #include<cmath> 7 #include<queue> 8 #include<stack> 9 #include<vector> 10 #define INF 11 #define maxn 100100 12 using namespace std; 13 typedef long long LL; 14 int vist[maxn],cnt[maxn]; 15 int mm; 16 void solve() 17 { 18 for(int i=2;i<=mm;i++) 19 { 20 for(int j=i;j<=mm;j+=i) 21 { 22 if(vist[j]) 23 cnt[i]+=vist[j]; 24 } 25 }//nlogn 的復雜度 26 } 27 28 int main() 29 { 30 int t,a[maxn],n; 31 scanf("%d",&t); 32 for(int ii=1;ii<=t;ii++) 33 { 34 scanf("%d",&n); 35 memset(vist,0,sizeof(vist)); 36 for(int i=1;i<=n;i++) 37 { 38 scanf("%d",&a[i]); 39 vist[a[i]]++; 40 mm=max(mm,a[i]); 41 } 42 memset(cnt,0,sizeof(cnt)); 43 solve(); 44 cnt[1]=2; 45 printf("Case #%d: ",ii); 46 for(int i=mm;i>=1;i--) 47 if(cnt[i]>=2) 48 { 49 printf("%d\n",i); 50 break; 51 } 52 53 } 54 return 0; 55 }
?
?轉載于:https://www.cnblogs.com/tsw123/p/4438162.html
總結
- 上一篇: [BZOJ3275]Number解题报告
- 下一篇: 进位与溢出