完全背包 Codeforces Round #302 (Div. 2) C Writing Code

來源:互聯網
上載者:User

標籤:

 

題目傳送門

 1 /* 2     題意:n個程式員,每個人每行寫a[i]個bug,現在寫m行,最多出現b個bug,問可能的方案有幾個 3     完全背包:dp[i][j][k] 表示i個人,j行,k個bug    dp[0][0][0] = 1 表示不選擇人的時候所有的bug的種類犯錯誤都只有一種 4             dp[i][j][k] += dp[i%2][j-1][k-a[i]]; 5             錯誤示範:dp[i][j][k] += dp[i-1][j-l][k-l*a[i]];    其實要從上一行的狀態推出,即少一行 6             記憶體限制,滾動數組使用 7     詳細解釋:http://www.cnblogs.com/wikioibai/p/4487409.html 8 */ 9 #include <cstdio>10 #include <algorithm>11 #include <cstring>12 #include <string>13 #include <cmath>14 using namespace std;15 16 const int MAXN = 5e2 + 10;17 const int INF = 0x3f3f3f3f;18 int a[MAXN];19 int dp[2][MAXN][MAXN];20 21 int main(void)        //Codeforces Round #302 (Div. 2) C Writing Code22 {23     //freopen ("C.in", "r", stdin);24 25     int n, m, b;26     long long mod;27     while (scanf ("%d%d%d%I64d", &n, &m, &b, &mod) == 4)28     {29         memset (dp, 0, sizeof (dp));30         for (int i=1; i<=n; ++i)    scanf ("%d", &a[i]);31 32         dp[0][0][0] = 1;33         for (int i=1; i<=n; ++i)34         {35             for (int j=0; j<=m; ++j)36             {37                 for (int k=0; k<=b; ++k)38                 {39                     dp[i%2][j][k] = dp[(i+1)%2][j][k];40                     if (j > 0 && k >= a[i])    dp[i%2][j][k] = (dp[i%2][j][k] + dp[i%2][j-1][k-a[i]]) % mod;41                 }42             }43         }44 45         long long ans = 0;46         for (int i=0; i<=b; ++i)    ans = (ans + dp[n%2][m][i]) % mod;47         printf ("%I64d\n", ans);48     }49 50     return 0;51 }

 

完全背包 Codeforces Round #302 (Div. 2) C Writing Code

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.