CF364D Ghd

Metaphysical questions ... ... ... number of topics ... ... ...

Ghd face questions gives the definition of ... is probably the maximum number of columns in the gcd of a number of more than half of ...

Looks like a half ... but failed to identify monotonic

They would have to come up with a panacea randomized

Probably a random 10 times, the error rate is only about 1/1000 of QAQ

#include<bits/stdc++.h>
using namespace std;
const int randomsum=10;//随机十次
unsigned long long seed1,seed2;
void randomize(unsigned long long c,unsigned long long b)//自己写的随机化模板
{
    seed1=c+b;
    seed2=b*c%468562482981;//膜一个不知道是啥的数
}
unsigned long long random()//某dalao用的随机数方法
{
    seed1^=seed2<<12;
    seed2^=seed1>>9;
    seed1^=seed2<<6;
    seed2^=seed1<<12;
    seed2^=seed1<<3;
    seed1=~seed1;
    seed2=~seed2;
    seed1^=seed2^=seed1^=seed2;
    return seed1;
}
long long gcd(long long a,long long b)//gcd
{
    if(b==0)return a;
    return gcd(b,a%b);
}
long long llmax(long long a,long long b)//long long取max
{
    if(a>b)return a;else return b;
}
long long num[1000005];
int N;
long long a[1000005],b[1000005],c[1000005],answer=1,half;
void solve()
{
    long long QAQ=num[(int)(random()%N+1)];//随机一个序列中的数
    int i,j;
    for(i=1;i<=N;i++)
    a[i]=gcd(num[i],QAQ);//所有数都和这个数取一次gcd
    sort(a+1,a+N+1);//拍一遍序
    int top=0;
    for(i=1;i<=N;i++)//去重,并记录个数
    {
        if(a[i]!=a[i-1])
        {b[++top]=a[i];c[top]=0;}
        c[top]++;
    }
    long long sum=0,now=-1;
    for(i=1;i<=top;i++)//枚举answer
    {
        sum=0;
        for(j=1;j<=top;j++)
        if(b[j]%b[i]==0)sum+=c[j];
        if(sum>=half)now=b[i];//判断answer是否成立
    }
    answer=llmax(answer,now);//与最终答案取大值
}
int main()
{
    randomize(time(0),time(0));//随机初始化
    scanf("%d",&N);
    int i;
    a[0]=-1;
    half=(N+1)/2;//一半的大小
    for(i=1;i<=N;i++)
    scanf("%lld",&num[i]);
    for(i=1;i<=randomsum;i++)
    solve();
    printf("%lld",answer);
    return ~0;//QAQ
}

// Because it is randomized, so there will be a certain probability can be increased random number ...

Published 72 original articles · won praise 22 · views 5534

Guess you like

Origin blog.csdn.net/sxy__orz/article/details/96488962