zoukankan      html  css  js  c++  java
  • luogu P1077 摆花

    这道题看似好难,但是其实很简单 先把题目中所让你设的变量都设好,该输入的都输入 你会发现这道题好像成功了一半,为什么呢???

    因为设完后你会发现你不需要再添加任何变量,已经足够了。 可能最难的地方,就在于状态转移方程式了

    先从三重循环说起,第一层1——n没问题

    第二层0——m也没问题

    第三层为什么是a[i],因为你不知道最后总和是几,我们到底要选这种花多少合适,所以这一层循环意义在于k来枚举选这种花的数量。。。

    所以状态转移方程式完成了一半————f[...][j-k]

    因为想要知道总方案数那么前面的i-1种花是不能落下的

    于是方程式前半段也有了——f[i-1][...]

    于是整个状态转移方程式就有了

    f[i][j]=(f[i][j]+f[i-1][j-k])%mod//一定要取模


    那么就。。。完结,撒花!!!

    #include<bits/stdc++.h>
    using namespace std;
    const int M = 1100;
    const int mod = 1000007;
    int n,m,s;
    int a[M],f[M][M];
    int main()
    {
        cin>>n>>m;
        for(int i=1;i<=n;i++)
            cin>>a[i];
        f[0][0]=1;//不要问我为什么,因为我也//不知道//
        for(int i=1;i<=n;i++)
            for(int j=0;j<=m;j++)
                for(int k=0;k<=a[i];k++)
                {
                    f[i][j]=(f[i][j]+f[i-1][j-k])%mod;//状态转移方程式
                }
        cout<<f[n][m];
        return 0;
    }
  • 相关阅读:
    峰Spring4学习(1)HelloWorld
    小峰mybatis(5)mybatis使用注解配置sql映射器--动态sql
    前端实现某一列不能重复不能且不能为空
    jquery:给正则表达式添加变量
    css:width height
    让heigh:100%起作用
    jquery:选择器 过滤器
    vs:如何添加.dll文件
    jq:正则表达式
    css:html() text() val()
  • 原文地址:https://www.cnblogs.com/xmex/p/10097908.html
Copyright © 2011-2022 走看看