摆花 – abb1998的博客

标题问题叙述

NOIP 2012伸开组

小明花店西南实习,为了招引诉讼委托人,他想在花店前放一排花,共 m 盆。经过考察诉讼委托人的奇特的,小明列出了诉讼委托人的价格非常昂贵的 n 花艺,从 1 到 n 评分。为了在斗中窗侧更多测定的花,规则第 i 开花不应超越 仿智浅碟形盆地。摆花时相同花艺放肩并肩的,从花剑到花剑必要顺序有区别的测定的花。 试项目计算一共享深深地种有区别的的摆花项目。

输入

第聚会的表现两个无符号约整数 n 和 m,位于正中的用空格隔开。

次要的行有 n 约整数的数量,每两约整数的数量中间用一体空格隔开,顺次表现 a1、a2、……an。

[最高纪录广袤]
20%最高纪录,有0在附近50%的最高纪录,有0100%最高纪录,有0

输入

输入正是聚会的,一约整数的数量,提示有深深地调动球员。
在意:由于能够有很多项目,请输入专有的项目 1000007 成型末后。

样例输入

2 4
3 2

样例输入

2
#include
using namespace std;

 int n,m;
 int a[202];
 int d[202][202] = {0};
void task()
{
    在附近(int i=0;i<=n;i++) d[i][0]=1;  //i花艺放0盆的项目数是1,即不放花

    在附近(int i=1;i<=n;i++)
    在附近(int j=1;j<=m;j++)
    在附近(int k=0;k<=a[i]&&k<=j;k++)
    {
        d[i][j]=(d[i][j]+d[i-1][j-k])%1000007;//后一体d[i][j]表现第i花艺放0 — k-1盆的项目总数。第i花艺放k盆的项目数是d[i-1][j-k],前 i花艺放在j个位置的项目数是第i花艺放k(0—min(a[i] , j))盆的项目总数,因此要累加
    }

    cout<>n>>m;
    在附近(int i=1;i<=n;i++)
        cin>A[一]
    task();
    return 0;
}

发表评论