(Jizhong) 2402 Explorar vacas (búsqueda) y [pobres]

(Archivo IO): Entrada: search.in de salida: search.out
límite de tiempo: 1000 ms limitaciones de espacio: las restricciones específicas 262144 KB
Goto Boletín de problemas


título Descripción
F J FJ vacas les gusta explorar el terreno alrededor de la granja. Al principio, todo norte ( 1 < = norte < = 1 , 000 , 000 , 000 ) N (1 <= N <= 1000000000) solamente a partir de las vacas, pero cuando se enfrentan a la intersección, una manada de ganado que puede estar dividido en dos partes (no vaciar), cada parte se mueva hacia adelante cuando se trata de otro cruce, y luego se divide en dos partes, por lo repetida hacia abajo. Suponiendo que el camino está lleno de nuevo tenedor, calcular cuánto tiempo se divide en equipos.


Introduzca la
primera 1 1 line: dos enteros separados por espacios: norte , K N, K , en donde K K representa el número de vacas lecheras cuando los dos equipos se repartieron la diferencia.

exportación
1 1 línea: número entero de salida un número final de equipos.


entrada de la muestra
62

Ejemplo de salida
3


límite de rango de datos


Inclinar
Introduzca una descripción: No 6 6 vacas, vacas cuando la diferencia entre los dos equipos de división 2 2 .
Descripción Salida: 3 en última instancia, son contingentes


 6
/ \

24
/
13
Número de respectivamente 2 , 1 , 3 2,1,3 .


Ideas de resolución de problemas
se pueden enumerar directamente cada tenedor en el camino de los dos equipos, un gran número de recursividad y decimales.
Y emite una fórmula de diferencias:
dos números mayor número :( gran número) = (+ y de diferencia) / 2
números dos más pequeños :( número decimal) = (y - diferencia) / 2


código

#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<algorithm>
#include<iomanip>
#include<cmath>
using namespace std;
int n,k,ans;
void dfs(int s)
{
    if(s>k&&(s-k)%2==0&&(s+k)%2==0)
    {
        ans++;
        dfs((s-k)/2);
        dfs((s+k)/2);
    }
}
int main(){
   freopen("search.in","r",stdin);
   freopen("search.out","w",stdout);
   scanf("%d%d",&n,&k);
   dfs(n);
   printf("%d",ans+1);
}
Publicados 119 artículos originales · ganado elogios 8 · vistas 4917

Supongo que te gusta

Origin blog.csdn.net/kejin2019/article/details/104860074
Recomendado
Clasificación