CF#511-C Enlarge GCD(gcd)

Posted tianwell

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CF#511-C Enlarge GCD(gcd)相关的知识,希望对你有一定的参考价值。

题意:给你一个序列,然后求删除几个数之后整个序列的最大公约数增大
思路:我们首先要求出这个公共的gcd,然后要使gcd增大我们可以尝试对增加gcd并判断是否为存在某个数为该数的gcd
同时统计个数,为公共gcd最大的即为最后所求的值。(增加上限就是到最大的那个数)
范围为1~1e5,arr[i]为1.5e7

完整代码:

#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <iostream>
using namespace std;
int arr[maxn];
int gcd(int a,int b)
    return b==0?a:gcd(b,a%b);

int main()
    int n;
    while(cin>>n)
        for(int i =0 ;i<n;i++)
            cin>>arr[i];
        
        sort(arr,arr+n);
        int g = arr[0];
        for(int i = 1;i<n;i++)
            g = gcd(arr[i],g);
        
        int ans = 0;
        int cont;
        for(int j = g;j<=arr[n-1];j++)
            cont = 0;
            for(int k = 0;k<n;k++)
                if(arr[i]%g) continue;
                else cont++;
            
            ans = max(ans,cont);
        
        cout<<n-ans<<endl;

    

 

以上是关于CF#511-C Enlarge GCD(gcd)的主要内容,如果未能解决你的问题,请参考以下文章

CF 1047 C. Enlarge GCD

CodeForces 1047C Enlarge GCD(数论)题解

C. Enlarge GCD Codeforces Round #511 (Div. 2)数学

Codeforces Round #511 (Div. 2)-C - Enlarge GCD (素数筛)

Codeforces Round #511 (Div. 2) C. Enlarge GCD

Codeforces Round #511 Div2 C. Enlarge GCD