Puesto de flores (paquete de mochila, número acumulado de los programas de la demanda)

título Descripción

Xiao Ming ha sido recientemente inaugurado tienda de flores, con el fin de atraer a los clientes, que quería poner una fila de flores delante de una floristería, una cuenca total mm. Por la investigación de las preferencias del cliente, Xiao Ming enumera las flores favoritas de los clientes nn del 11 al sello nn. Con el fin de mostrar más flores en la puerta, no puede exceder de lo dispuesto en el párrafo II ollas a_iai de flores, las mismas flores juntas cuando se colocan flores y base de flores, tener diferentes tipos de etiquetas de pequeño a grande el fin de localizar.

programa de prueba para calcular un número de diferentes programas colocados flores existen.

Formato de entrada

La primera línea contiene dos enteros nn y mm positivos, separadas por un espacio.

La segunda línea tiene números enteros nn, cada uno entre dos números enteros separados por un espacio, respectivamente, para a_1, a_2, ..., a_na1, a2, ..., an.

Formato de salida

Un entero que indica el número de tipos de programas. Nota: Los resultados pueden numerar tantos programas, por favor plan para 10.000.071.000.007 número de salida de módulo.

entrada y salida de la muestra

Entrada # 1

2 4 
3 2

Salida # 1

2

Descripción / Consejos

[Rango de datos]

Para 20% de los datos, hay 0 <n≤8,0 <m≤8,0≤a_i≤80 <n≤8,0 <m≤8,0≤ai ≤8;

Para 50% de los datos, hay 0 <n≤20,0 <m≤20,0≤a_i≤200 <n≤20,0 <m≤20,0≤ai ≤20;

Para 100% de los datos, hay 0 <n≤100,0 <m≤100,0≤a_i≤1000 <n≤100,0 <m≤100,0≤ai ≤100.

  1. La agrupación de mochila mochila llena similares, pero el número (dentro del grupo) cada elemento no uno, ni numerosos, y varios
  2. Cada objeto dentro del grupo son independientes, un elemento se selecciona de cada grupo, por lo tanto se puede aplicar en un bucle de recirculación a través de cada elemento para completar la mochila en el grupo de
  3. El título de cada flor puede ser visto como un grupo, los elementos del grupo como: una planta en maceta, tomar una posición, dos planta en maceta, pasaron dos posiciones. . . . a [i] una flor, una i-ésima posición toma
  4. fórmula recursiva: dp [J] + = dp [jk] dp [J] representa un j-ésimo posición del método de descarga
#include<iostream>
using namespace std;
int main(){
	int n,m,a[102],dp[102]={0};  //DP【i】 表示 摆 i 盆花的方案  
    cin>>n>>m;
    for(int i=1;i<=n;i++)cin>>a[i];
    dp[0]=1;
    for(int i=1;i<=n;i++){ //N种花 
    	for(int j=m;j;j--){ //摆m盆 
    		for(int k=1;k<=a[i];k++){  //第i种花可能出现的盆数 
    		   if(j>=k)dp[j]=(dp[j-k]+dp[j])%1000007;
    		   else break;
			}
		}
	}cout<<dp[m]<<endl;
	return 0;
} 

 

Publicado 42 artículos originales · alabanza ganado 16 · vistas 3405

Supongo que te gusta

Origin blog.csdn.net/qq_41542638/article/details/98251356
Recomendado
Clasificación