zoukankan      html  css  js  c++  java
  • 洛谷P1077 [NOIP2012普及组]摆花 [2017年四月计划 动态规划14]

    P1077 摆花

    题目描述

    小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆。通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号。为了在门口展出更多种花,规定第i种花不能超过ai盆,摆花时同一种花放在一起,且不同种类的花需按标号的从小到大的顺序依次摆列。

    试编程计算,一共有多少种不同的摆花方案。

    输入输出格式

    输入格式:

    第一行包含两个正整数n和m,中间用一个空格隔开。

    第二行有n个整数,每两个整数之间用一个空格隔开,依次表示a1、a2、……an。

    输出格式:

    输出只有一行,一个整数,表示有多少种方案。注意:因为方案数可能很多,请输出方案数对1000007取模的结果。

    输入输出样例

    输入样例#1:
    2 4
    3 2
    
    输出样例#1:
    2

    说明

    【数据范围】

    对于20%数据,有0<n≤8,0<m≤8,0≤ai≤8;

    对于50%数据,有0<n≤20,0<m≤20,0≤ai≤20;

    对于100%数据,有0<n≤100,0<m≤100,0≤ai≤100。

    NOIP 2012 普及组 第三题

    比较水。

    f[i][j]表示用了前i种花,共j盆的方案数
    f[i][j] = Σ(max(0,j - k),a[i])f[i - 1][k]  第i种花用了j - k盆

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <cstdlib>
    #include <algorithm>
    #define swap(a,b) ((a)^=(b)^=(a)^=(b))
    #define max(a,b) ((a) > (b) ? (a) : (b))
    #define min(a,b) ((a) > (b) ? (b) : (a))
    
    int read()
    {
    	int x = 0;char ch = getchar();char c = ch;
    	while(ch > '9' || ch < '0')c = ch,ch = getchar();
    	while(ch >= '0' && ch <= '9')x = x * 10 + ch - '0',ch = getchar();
    	if(c == '-')return -x;
    	return x;
    }
    
    const int MOD = 1000007;
    const int INF = 0x3f3f3f3f;
    const int MAXN = 100 + 10;
    const int MAXM = 100 + 10;
    int n,m;
    int num[MAXN];
    int sum[MAXN];
    int f[MAXN][MAXM];
    int main()
    {
    	n = read();m = read();
    	for(int i = 1;i <= n;i ++)
    	{
    		num[i] = read();
    	}
    	for(int i = 0;i <= n;i ++)
    	{
    		f[i][0] = 1;
    	}
    	for(int i = 1;i <= n;i ++)
    	{
    		for(int j = 1;j <= m;j ++)
    		{
    			for(int k = max(0, j - num[i]);k <= j;k ++)
    			{
    				f[i][j] += f[i - 1][k];
    				if(f[i][j] > MOD)f[i][j] -= MOD;
    			}
    		}
    	}
    	printf("%d", f[n][m]%MOD);
    	return 0;
    }
    
  • 相关阅读:
    lamp----6 实现虚拟主机ssl安全
    lamp-----5 apache虚拟主机实现,发布多个独立站点
    lamp----4 虚拟目录
    lamp----3 访问控制
    Apache配置反向代理、负载均衡和集群(mod_proxy方式)
    lamp-------3 userdir发布用户站点
    lamp------2 发布站点
    [转]KDE/QT与GNOME/GTK比较
    为什么会有文字聊天
    [转]gdb结合coredump定位崩溃进程
  • 原文地址:https://www.cnblogs.com/huibixiaoxing/p/6810062.html
Copyright © 2011-2022 走看看