LOVE (Competencia de diseño del programa de primer año de primavera de la New Wind Cup de la Universidad Normal de Jiangxi 2021)

Enlace del título original

Aunque se coloca en la última pregunta, todavía es relativamente acuoso, solo necesita juzgar el problema de paridad.

tema

Tiene cuatro tipos de letras, cada una de las cuales tiene un número determinado.
Puede realizar un número limitado de operaciones
. Elimine las tres letras de l, oyv una a la vez (obviamente, las tres letras deben ser mayores que o igual a 1), y luego obtienes 3 letras E.
Después de varias (quizás cero) operaciones, ¿se pueden ordenar todas las letras en un palíndromo?

Ingrese descripción

Una t en la primera línea significa una consulta de grupo t

En la siguiente línea t, cada línea tiene cuatro números, lo que indica el número de letras l, o, v, e

Descripción de salida

t line, si puede emitir SÍ, no puede emitir NO

Entrada de muestra

2
2 3 4 5
2 0 0 1

Salida de muestra

NO
SI

rango de datos

t <= 10 ^ 5 El
número de cada letra es menor o igual que 10 ^ 9

Según la naturaleza del palíndromo, debe haber tres o más números pares en el número de cuatro letras (las letras en el medio pueden ser pares o pares), de la siguiente manera:

lovevol
loveevol

Según el significado de la pregunta, puede eliminar las tres letras l, o, v una a la vez y agregar 3 letras e, es decir, cambiar la paridad de las cuatro letras una vez por operación. La operación con número impar puede cambiar la paridad y la operación con número par no cambia.

Dado que el número de cada letra no puede ser menor que 0, el número máximo de operaciones es el mínimo de l, oy v. En este momento, solo es necesario considerar si la paridad de las tres restantes (o incluso menos) Las letras cumplen el requisito de formar un palíndromo La condición de la cuerda.

Código:

#include <iostream>
using namespace std;

int l,o,v,e;

int main(){
    
    
    int t,min=0;
    cin>>t;
    int l1,o1,v1,e1;
    for(int i=0;i<t;i++){
    
    
        cin>>l>>o>>v>>e;
        if(l>o)
            min=o;
        else
            min=l;
        if(min>v)
            min=v;
        if(min>0){
    
    
            l1=l%2,o1=o%2,v1=v%2,e1=e%2;
            if(l1+o1+v1+e1<=1||l1+o1+v1+e1>=3)
               printf("YES\n");
            else{
    
    
                l-=min;
                o-=min;
                v-=min;
                e1+=min%2;
                if(e1==2)
                    e1=0;
                l1=l%2,o1=o%2,v1=v%2;
                if(l1+o1+v1+e1<=1||l1+o1+v1+e1>=3)
                    printf("YES\n");
                else
                    printf("NO\n");
            }
        }
        else{
    
    
        	l1=l%2,o1=o%2,v1=v%2,e1=e%2;
        	if(l1+o1+v1+e1<=1||l1+o1+v1+e1>=3)
                printf("YES\n");
            else
                printf("NO\n");
		}
    }
    return 0;
}

Supongo que te gusta

Origin blog.csdn.net/laysan/article/details/114932220
Recomendado
Clasificación