Preguntas diarias (103)
39 ° paso
Descripción del Título
Xiao Ming acaba de terminar de ver la película "The 39th Steps". Cuando salió del cine, contó el número de escalones frente al auditorio, ¡que resultó ser 39!
De pie frente a los escalones, de repente pensó en otra pregunta. :
Si solo tuviera un paso a la vez, puedo subir 1 o 2 pasos. Primero toma el pie izquierdo, luego alterna izquierda y derecha, el último paso es tomar el pie derecho, lo que significa que debes dar un número par de pasos en total. Entonces, ¿cuántas formas diferentes hay después de 39 pasos?
Aproveche la computadora para ayudar a Xiao Ming a encontrar la respuesta.
Requisitos de la asignatura
El envío requerido es un número entero.
Nota: No envíe el proceso de respuesta u otro texto de apoyo.
Ideas
Es dfs de nuevo. . .
Código C ++
#include<bits/stdc++.h>
using namespace std;
int ans = 0;
int sum = 0;
vector<int> a(40, 0);
void dfs(int steps)
{
if(sum >= 39)
{
if((steps - 1) % 2 == 0 && sum == 39)
ans++;
return;
}
for(int i = 1; i <= 2; i++)
{
a[steps] = i;
sum += i;
dfs(steps + 1);
sum -= i;
}
}
int main()
{
dfs(1);
cout << ans << endl;
return 0;
}
Resultado de la operación: la
respuesta es:
51167078
Los nabos y las verduras tienen su propio amor (otra solución de C ++)
#include <iostream>
#include <algorithm>
using namespace std;
int cnt;
void dfs(int step,int sum){
if(sum>=39){
if(sum==39&&step%2==0) cnt++;//注意只有恰好sum==39符合偶数步才ok
return;
}
dfs(step+1,sum+1);
dfs(step+1,sum+2);
}
int main() {
dfs(0,0);
cout<<cnt;
return 0;
}
Entonces, ¿esta película es buena? Nos vemos en los comentarios