CF: A y B es matemáticamente equivalente Pensamiento

B. A y B

Cuestión está destinada: a a, b dos números, por la operación: la i-ésima operación de A o B más i. Con un número mínimo de operaciones de modo que A, es igual a B.
Análisis:
Considerar pensé equivalente a A + i corresponde a Bi. Se transforma en 1 (+/-) 2 (+/-) 3 (+/-) ... (+/-) n = AB. El tamaño es igual a la secuencia aritmética - ( norte + 1 ) * norte / 2 - (n + 1) * n / 2 a ( norte + 1 ) * norte / 2 (N + 1) * n / 2 , n términos de paridad de expresión iguales, debido a cambios en línea con las respuestas frente a un número de más o menos dos veces el número.
Por lo tanto, de la enumeración comenzando n, hasta igual AB y cuando la respuesta es en este paridad gama

#include<bits/stdc++.h>
using namespace std;
void solve(){
    int a,b;
    cin>>a>>b;
    int x=max(a,b)-min(a,b);
    if(x==0) {
        cout<<"0"<<endl;
        return ;
    }
    int ans=1;
    while(1){
        long long sum=1ll*(ans+1)*ans/2;
        if(x<=sum&&sum%2==x%2){
            cout<<ans<<endl;
            return ;
        }
        ++ans;
    }
}
int main(){
    int T;
    cin>>T;
    while(T--){
        solve();
    }
}
Publicado 96 artículos originales · ganado elogios 11 · vistas 2271

Supongo que te gusta

Origin blog.csdn.net/weixin_43769146/article/details/103722167
Recomendado
Clasificación