zoukankan      html  css  js  c++  java
  • Codeforces544C Writing Code

    题意:输入n,m,b,mod,接下来a1-a[n],n个队员,每个队员写一行就有a[i]个BUG,最后要有m行,而且bug不能超过b个的方法数

    题解:n个物品放入背包,每一个可以不限制,就是完全背包,有两个花费,一个是费用的限制,一个是个数的限制,所以是二维的完全背包

    #include <bits/stdc++.h>
    #define maxn 1001
    #define ll long long
    using namespace std;
    ll dp[maxn][maxn], n, m, b, mod, v1, v2, a;
    void comppack(int c1,int c2){
        for(int i=c1;i<=b;i++)
            for(int j=c2;j<=m;j++)
            dp[i][j] = (dp[i][j]+dp[i-c1][j-c2])%mod;
    }
    int main(){
        cin>>n>>m>>b>>mod;
        dp[0][0] = 1;
        for(int i=0;i<n;i++){
            cin>>a;
            comppack(a, 1);
        }
        for(int i=0;i<b;i++) dp[b][m] = (dp[b][m]+dp[i][m])%mod;
        cout<<dp[b][m]<<endl;
        return 0;
    }
  • 相关阅读:
    (转)五大常用算法之二:动态规划算法
    (转)五大常用算法之一:分治算法
    dict
    usaco2
    usaco3
    usaco4
    usaco1
    并查集
    洛谷P1428小鱼比可爱
    洛谷P1967货车运输
  • 原文地址:https://www.cnblogs.com/Noevon/p/8430393.html
Copyright © 2011-2022 走看看