Codeforces Ronda # 525 (Div. 2) E

El significado de los problemas

decir una si y C re a \ oplus b 和 c \ oplus d relaciones de tamaño.
si si , re re está dada por ellos mismos, encontrar una una , C C

solución del problema

A juzgar por mayor a menor, al parecer, al menos a 2 2 Ge, tenía que mantener el tamaño de la detrás de relación.
Si elige 1 1 , 0 0 ; 0 0 , 1 1 ;
simplemente 0 , 0 0,0 y 1 , 1 1,1 tiempo, se puede determinar directamente, y debido a que es igual, la relación magnitud sin cambios.
en 0 , 1 0,1 , y 1 , 0 1,0 el tiempo, no se puede determinar directamente, después de determinar la relación de magnitud por el anterior, ya que es igual a un OR exclusivo valor, la relación magnitud que se almacena directamente detrás de la relación magnitud.

#include<bits/stdc++.h>
#define FOR(i,l,r) for(int i=l;i<=r;i++)
#define sf(x) scanf("%d",&x)
#define inf 1e18
using namespace std;
typedef long long ll;
const int maxn = 405000;

int n,A[maxn];

int query(int x,int y){
    cout<<"? "<<x<<" "<<y<<endl;
    cout.flush();
    int val;cin>>val;
    return val;
}

int main(){
    int a=0,b=0,big=query(a,b);
    for(int i=29;i>=0;i--){
        int l=query(a^(1<<i),b),r=query(a,b^(1<<i));
        if(l==r){
            if(big==1)a^=(1<<i);
            else if(big==-1)b^=(1<<i);
            big=l;
        }
        else if(l==-1){
            a^=(1<<i);
            b^=(1<<i);
        }
    }
    cout<<"!"<<" "<<a<<" "<<b<<endl;
}

Publicados 203 artículos originales · ganado elogios 17 · Vistas a 20000 +

Supongo que te gusta

Origin blog.csdn.net/mxYlulu/article/details/104221466
Recomendado
Clasificación