• Codevs 1315 摆花


    1315 摆花

    2012年NOIP全国联赛普及组
    时间限制: 1 s    空间限制: 128000 KB    题目等级 : 黄金 Gold
    题目描述 Description

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

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

    输入描述 Input Description

    输入共2行。

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

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

    输出描述 Output Description

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

    样例输入 Sample Input

    2 4

    3 2

    样例输出 Sample Output

    2

    数据范围及提示 Data Size & Hint

    【输入输出样例说明】

    有2种摆花的方案,分别是(1,1,1,2),(1,1,2,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。

     1 #include<iostream>
     2 #include<cstring>
     3 #include<cstdio>
     4 using namespace std;
     5 #define maxn 105
     6 #define Mod 1000007
     7 int n,m,a[maxn],f[maxn][maxn];
     8 int main()
     9 {
    10     scanf("%d%d",&n,&m);
    11     for(int i=1;i<=n;i++)
    12       scanf("%d",&a[i]);
    13     for(int i=0;i<=a[1];i++)
    14       f[1][i]=1;
    15     for(int i=2;i<=n;i++)
    16       for(int j=0;j<=m;j++)
    17         for(int k=0;k<=a[i];k++)
    18           if(j>=k)
    19             f[i][j]=(f[i][j]+f[i-1][j-k])%Mod;
    20     
    21     printf("%d",f[n][m]);
    22     return 0;
    23 }
    24 /*这道题类似于多重背包吧。转移方程为:
    25 f[i][j]=(f[i][j]+f[i-1][j-k])(0<=k<=a[i] && j>=k),
    26 其含义是在前j个花盆放i种花
    27 它的含义是:比如当前我要在第j个位置放k朵 i 种的花,
    28 我现在只考虑当前这个状态以及之前的状态。当前是第i种,
    29 则之前的i-1种,
    30 就只能放到j-k这个位置上(当前的花是从第j个位置往前放的),
    31 然后累加即可。*/
  • 相关阅读:
    Flutter form 的表单 input
    FloatingActionButton 实现类似 闲鱼 App 底部导航凸起按钮
    Flutter 中的常见的按钮组件 以及自 定义按钮组件
    Drawer 侧边栏、以及侧边栏内 容布局
    AppBar 自定义顶部导航按钮 图标、颜色 以及 TabBar 定义顶部 Tab 切换 通过TabController 定义TabBar
    清空路由 路由替换 返回到根路由
    应对ubuntu linux图形界面卡住的方法
    [转] 一块赚零花钱
    [转]在树莓派上搭建LAMP服务
    ssh保持连接
  • 原文地址:https://www.cnblogs.com/suishiguang/p/6399249.html
Copyright © 2020-2023  润新知