codeforces 347C Alice y Bob (matemáticas, pensamiento)

Pregunta: En
un conjunto, hay n números y no son iguales. Dos personas eligen dos números diferentes xey del conjunto a su vez, de modo que | xy | no está en el conjunto, y agregan | xy | al conjunto , Hasta que alguien ya no pueda operar.
Solución: esta
pregunta en realidad no tiene nada que ver con la estrategia. Solo tiene que ver con cuántos números se pueden poner. Al principio pensé que todos los números entre 1 y el valor máximo se pueden poner en el conjunto, por lo que la respuesta es max-n, pero Was, y más tarde descubrí que los datos de 2, 4, 6, 8 no son buenos. Si lo piensas detenidamente, puedes encontrar que si los elementos del conjunto son a, 2a, 3a, 4a, 5a, ..., ka, entonces no podemos Agregue cualquier número, y solo hay k números como máximo. Mirándolo, el máximo común divisor de estos números es en realidad a, luego k = max / gcd, que es el número máximo que se puede acomodar en el conjunto, luego kn es lo que todavía podemos poner Si el número de números que entran es impar, entonces gana la primera persona; de lo contrario, gana la segunda persona.
Aunque parezca simple, la idea es realmente difícil de pensar.
Código:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
#include<stack>
#include<set>
#define iss ios::sync_with_stdio(false)
using namespace std;
typedef long long ll;
const int mod=1e9+7;
const int MAXN=1e3+5;
int a[MAXN];
int gcd(int a,int b)
{
    
    
    if (b == 0)
        return a;
    else if (a < b)
        return gcd(b, a);
    else
        return gcd(b, a % b);
}
int main()
{
    
    
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
    
    
        cin>>a[i];
    }
    sort(a+1,a+1+n);
    int gg=gcd(a[1],a[2]);
    for(int i=3;i<=n;i++)
    {
    
    
        gg=gcd(gg,a[i]);
    }
    if((a[n]/gg-n)&1)
    {
    
    
        cout<<"Alice"<<endl;
    }
    else
    {
    
    
        cout<<"Bob"<<endl;
    }
}

Supongo que te gusta

Origin blog.csdn.net/weixin_45755679/article/details/108033642
Recomendado
Clasificación