zoukankan      html  css  js  c++  java
  • CF

    本博客参考自这里

    不是我说,我就觉得这题题目贼鸡儿难懂

    所以只能看看别的博客如何解释这题题目的意思咯。

    有n个程序,这n个程序运作产生m行代码,但是每个程序产生的BUG总和不能超过b,给出每个程序产生的代码,每行会产生ai个BUG,
    问在总BUG不超过b的情况下,我们有几种产生bug的方法。
    解释一下例一的几种情况
    我用1,2,3代表程序,然后每个都是1个bug就不需要特地其他方法搞



    一共十种情况
    然后对dp进行分析,设立一个dp[j][k],j代表代码数m,k代表bug数b
    然后写状态转移方程:dp[j][k] += dp[j-1][k-a[i]]
    本行的bug为上一行的第k-a[i]列的和。(其实我觉得这是最难的一步啦,我也是看那位大佬的博客才明白的)
    还要注意的是状态转移方程的入口dp[0][0] = 1

    #include<bits/stdc++.h>
    #define ll long long
    using namespace std;
    ll dp[555][555],a[555];
    int main()
    {
    	int n,m,b,mod;
    	ll sum = 0;
    	scanf("%d%d%d%d",&n,&m,&b,&mod);
    	for(int i=1;i<=n;i++)
    	{
    		scanf("%d",&a[i]);
    	}
    	dp[0][0] = 1;//入口哦 
    	for(int i=1;i<=n;i++)
    	{
    		for(int j=1;j<=m;j++)
    		{
    			for(int k=a[i];k<=b;k++)//是从a[i]开始的 
    			{
    				dp[j][k] += dp[j-1][k-a[i]];//状态转移方程 
    				dp[j][k] %= mod;
    			}
    		}
    	}
    	for(int i=0;i<=b;i++)//小于b的bug数 
    	{
    		sum += dp[m][i];
    		sum %= mod;
    	}
    	printf("%I64d",sum);
    	return 0;
    }
    
    
    
    
     

    #include<bits/stdc++.h>
    #define ll long long
    using namespace std;
    ll dp[555][555],a[555];
    int main()
    {
        int n,m,b,mod;
        ll sum = 0;
        scanf("%d%d%d%d",&n,&m,&b,&mod);
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&a[i]);
        }
        dp[0][0] = 1;//入口哦 
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=m;j++)
            {
                for(int k=a[i];k<=b;k++)//是从a[i]开始的 
                {
                    dp[j][k] += dp[j-1][k-a[i]];//状态转移方程 
                    dp[j][k] %= mod;
                }
            }
        }
        for(int i=0;i<=b;i++)//小于b的bug数 
        {
            sum += dp[m][i];
            sum %= mod;
        }
        printf("%I64d",sum);
        return

  • 相关阅读:

    HTTP请求和响应格式
    什么是Alpha,Beta,RC,RTM,CTP版
    GE的分级体系与卫片的分辨率关系
    如何下载这幅DigitalGlobe卫星图?
    Google Maps/Earth下载图片封IP的最佳解决方法
    MAPGIS把经纬度坐标转换为大地坐标
    从Google卫星地图服务器上获取卫星照片的方法收藏
    谷歌地球 GoogleEarth软件介绍
    Oracle 查找表的字段信息
  • 原文地址:https://www.cnblogs.com/guangguangge/p/9351357.html
Copyright © 2011-2022 走看看