CF # 1395C. Operaciones de Boboniu y Bit

tema

Enlace del título: 1395C
Vídeo de referencia: Bilibili

Ideas

Encuentre c 1 c_1C1| c 2 c_2C2| c 3 c_3C3| … | cn c_nCnLa x resultante, donde ci c_iCyo = = = ai a_iunyo^ bj b_jsegundojSe
puede ver que el rango de datos de la pregunta no es grande, por lo que podemos enumerar todas las respuestas.
Para todos ai a_iunyo, Si xxx | (ai (a_i( unyo& bj) b_j)segundoj) ==xxx se establece, entoncesxxx es la respuesta deseada.

Código AC

#include<bits/stdc++.h>

using namespace std;

int main() {
    int n, m;
    scanf("%d%d", &n, &m);
    int a[210], b[210];
    for (int i = 0; i < n; i++) scanf("%d", &a[i]);
    for (int j = 0; j < m; j++) scanf("%d", &b[j]);
    for (int x = 0; x < (1 << 9); x++) {
        int f = 0;
        for (int i = 0; i < n; i++) {
            int ff = 0;
            for (int j = 0; j < m; j++) {
                if (((a[i] & b[j]) | x) == x) {
                    ff = 1; // 表示当前i与j满足等式
                    break;
                }
            }
            // 当没有满足等式时,当前x不符合题意,枚举下一个
            if (ff == 0) {
                f = 1;
                break;
            }
        }
        if (f == 0) {
            printf("%d\n", x);
            return 0;
        }
    }
    return 0;
}

Supongo que te gusta

Origin blog.csdn.net/qq_45934120/article/details/107983400
Recomendado
Clasificación