D. Ehab la Xorcist (XOR y las relaciones)

Significado de las preguntas: una serie de grupos que buscan el más corto, el número de éstos es XOR u, v y es.

Solución: 1, se encontró para XOR Además paridad y es equivalente a, la u, se cumple v paridad antes de la misma condición. 2, una serie de exclusiva o dividido en varios números deben no es mayor que el número original, por lo que u <= v.

3, 当 u == v && u == 0, 为 0,4, u == v && u! = 0, u 等于

5, u ^ 0 = 0, 3 dividida en consideración el número, u, (vu) / 2, (vu) / 2. satisfecho.

6, la más corta, de acuerdo con a ^ b = a + b -. 2 * (a & b) supone responder a, b a ^ b = (u ^ x) ^ x, a + b = (u + x) +. X. Si u ^ x = u + x. se puede combinar.

#include <bits / STDC ++ h.> 
using namespace std; 
typedef largo largo ll; 
#define int ll 
#define mod 998244353 
#define gcd (m, n) __gcd (m, n) 
rep #define (i, j, n) for (int i = j; i <= n; i ++) 
#define rojo ( i, n, j) for (int i = n; i> = j; i--) 
#define mE (x, y) memset (x, y, sizeof (x)) 
int lcm (int a, int b) {return a * b / gcd (a, b);} 
ll quickpow (ll a, ll b) {ll ans = 1, mientras que (b) {if (b & 1) ans = ans * a mod%; b >> = 1, a = a * a mod%;} ans de retorno;} 
// int euler1 (int x) {int ans = x; for (int i = 2; i * i <= x; i ++) si (x% i == 0) {Respuesta-= ans / i, mientras que (x% i == 0) x / = i;} if (x> 1) Respuesta-= American National Standard / x; ans de retorno;}
// int const N = 1E7 + 9; int VIS [n], el primer [n], phi [N]; int euler2 (int n) {ME (vis, true); int len = 1; rep (i, 2, n) {if (vis [i] ) {prime [len ++] = i, phi [i] = i-1;} for (int j = 1; j <len && prime [j] * i <= n; j ++) {vis [i * prime [j]] = 0; si (% prime i [j] == 0) {phi [i * prime [j]] = phi [i] * prime [j]; break;} else {phi [i * prime [j]] = phi [i] * phi [prime [j]];}}} len retorno} 
#define INF 0x3f3f3f3f 
#define acos PI (-1) 
#define pii par <int, int> 
#define fi primera 
#define SE segundo 
# definir LSON l, mediados, raíz << 1 
#define rson mediados + 1, r, raíz << 1 | 1 
#define pb push_back 
#define mp make_pair 
#define todos (v) v.begin (), V.END () 
tamaño #define (v) (int) (v.size ()) 
#define cin (x) scanf ( "% LLD", y x); 
int const N = 1E7 + 9;
const doble esp = 1e-6; 3 << endl; 
    }
 
 
anulará solve () { 
    int u, v; 
    cin >> T >> v; 
    si (u> v || u = v 2% 2%!) { 
        cout << -1 << endl; 
        regreso; 
    } 
    Si (u == v && v == 0) { 
        cout << U << endl; 
        regreso; 
    } 
    Si (u == v && v = 0) { 
        cout << 1 << endl << U << endl; 
        regreso ; 
    } 
    Int a = (v - u) / 2; 
    if ((a ^ u) == a + u) { 
        cout << 2 << endl; 
        cout << (u + v) / 2 << "" << un << endl; 
    } else { 
        cout << 3 << endl; 
        tribunal << << U "" << un << "" << un << endl; 
} 
 
Firmado main () 
{
    // ios :: sync_with_stdio (falsos); 
    t int; 
    // scanf ( "% LLD", y t); 
    // while (t--) 
        resolver (); 
}

  

 

Supongo que te gusta

Origin www.cnblogs.com/nonames/p/12536385.html
Recomendado
Clasificación