随笔 - 0  文章 - 5  trackbacks - 0
<2025年6月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

常用链接

留言簿(2)

文章分类

文章档案

教育

信息学奥赛

有用网站

在线OJ

专题测试

租房信息

搜索

  •  

最新评论

#include<fstream>
using namespace std;
const int N(108),MODN(1000007);
int a[N],f[N][N]={0};
int main()
{
    ifstream cin("flower.in");
    ofstream cout("flower.out");
    int n,m;    
    cin>>n>>m;
    for (int i=1;i<=n;i++) cin>>a[i];
    for (int i=0;i<=a[1];i++) f[1][i]=1;
    for (int i=2;i<=n;i++)
    {
        f[i][0]=1;
        for (int j=1;j<=m;j++)
            for (int k=0;k<=a[i];k++)
                if (j-k>=0)
                    f[i][j]=(f[i][j]+f[i-1][j-k])%MODN;
    }
    cout<<f[n][m]<<endl;
    return 0;
}
posted on 2012-11-27 15:39 龙在江湖 阅读(1324) 评论(1)  编辑 收藏 引用 所属分类: 动态规划竞赛题解_NOIP

FeedBack:
# re: NOIP2012 普及组 第3题 摆花[未登录] 2015-11-05 19:54 yy
#include<iostream>
#include<cmath>
#include<cstdio>
#include<fstream>
using namespace std;
int a[110],f[110][110]={0};
int main()
{
ifstream cin("flower.in");
ofstream cout("flower.out");
int n,m;
cin>>n>>m;
for (int i=1;i<=n;i++) cin>>a[i];
for (int i=0;i<=a[1];i++) f[1][i]=1;
for (int i=2;i<=n;i++)
{
f[i][0]=1;
for (int j=1;j<=m;j++)
for (int k=0;k<=a[i];k++)
if (j-k>=0)
f[i][j]=(f[i][j]+f[i-1][j-k])%1000007;
}
cout<<f[n][m]<<endl;
return 0;
}  回复  更多评论