1. Título Descripción
Ponga M manzanas idénticas en N platos idénticos, y deje algunos platos vacíos ¿Cuántos puntos diferentes hay? (Indicado por K) 5,1,1 y 1,5,1 son el mismo método de división.
De entrada
La primera línea es el número de datos de prueba t (0 <= t <= 20). Cada línea a continuación contiene dos enteros M y N, separados por espacios. 1 <= M, N <= 10.
Salida
Para cada conjunto de datos de entrada M y N, use una línea para generar la K. correspondiente
样例输入
1
7 3
样例输出
8
En segundo lugar, la solución
Método uno: búsqueda aleatoria
Sea a la cantidad de manzanas yb sea la cantidad de canastas, como se detalla a continuación:
a = 1 || b == 1
Cuando:- Pon la única manzana en una canasta.
- O ponga todas las manzanas en la única canasta.
b > a
En ese momento, debe haber canastas de ba que estén vacías, estas canastas no afectan mi elección de ubicación, porque solo puedo dejar que una canasta tenga manzanas.b <= a
Cuando se puede dividir en dos situaciones:a = b
Cuando, de hecho, hay muchas opciones:- Deje la canasta vacía: pero para ser escasa y no perder, solo dejo una canasta a la vez a la vez.
- Mantenga las canastas vacías: o cada canasta está llena.
b < a
También hay dos opciones:- Deje la canasta vacía: pero para ser escasa y no perder, solo dejo una canasta a la vez a la vez.
- Deje que la canasta no esté vacía, deje que las canastas b tengan una manzana cada una, y las manzanas ab restantes hagan otros planes.
import java.util.*;
import java.math.*;
import java.io.*;
public class Main{
static boolean[] vis;
static int res;
private static int dfs(int a, int b) {
if (a == 1 || b == 1)
return 1;
if (a == b)
return dfs(a, b-1) + 1;
if (a < b)
return dfs(a, a);
if (a > b)
return dfs(a, b-1) + dfs(a-b, b);
}
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(new BufferedInputStream(System.in));
BufferedWriter w = new BufferedWriter(new OutputStreamWriter(System.out));
int t = sc.nextInt();
while (t-- > 0) {
int a = sc.nextInt(); //app
int b = sc.nextInt(); //篮子
System.out.println(dfs(a, b));
}
}
}
Análisis de complejidad.
- Complejidad del tiempo: ,
- Complejidad espacial: ,
Método 2: dp
Encargado de negocios ...
Análisis de complejidad.
- Complejidad del tiempo: ,
- Complejidad espacial: ,