1 条题解

  • 0
    @ 2022-11-16 20:04:59
    #include<bits/stdc++.h>s
    #define mod 1000007 
    using namespace std;
    int f[105][105];//第i种花摆j盆的方案数 
    int main()
    {
    	int n,m,t;
    	cin>>n>>m;//n种花m个盆子
    	for(int i=0;i<=n;i++)//注意这里要从0开始 
    		f[i][0]=1;//第i种花一盆都不摆的一种方案
    	for(int i=1;i<=n;i++)//枚举花的种数
    	{
    		cin>>t;//最多能摆几盆
    		for(int j=0;j<=t;j++)//第i种花装j盆 
    		{
    			for(int k=0;k<=m-j;k++)//前一种花的j(防止冲突用k代替) 
    			{
    				if(j==0&&k==0) continue;
    				f[i][j+k]+=f[i-1][k];//j+k是当前一共摆了多少盆 
    				f[i][j+k]%=mod;//别忘取模~ 
    			}
    		} 
    	}
    	cout<<f[n][m];
    	return 0; 
    }
    }
    

    关爱生命,禁止抄袭~

    • 1

    信息

    ID
    530
    时间
    1000ms
    内存
    256MiB
    难度
    9
    标签
    递交数
    14
    已通过
    4
    上传者