zoukankan      html  css  js  c++  java
  • Codeforces 118 D. Caesar's Legions (dp)

    题目链接:http://codeforces.com/contest/118/problem/D

    有n个步兵和m个骑兵要排成一排,其中连续的步兵不能超过k1个,连续的骑兵不能超过k2个。

    dp[i][j][x][y]表示表示用i个步兵和j个骑兵,末尾有连续的x个步兵,或者有连续的y个骑兵。

    所以x > 0 && y > 0的情况不存在。三个for就好了。

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 typedef long long LL;
     4 LL mod = 1e8;
     5 LL dp[105][105][12][12];
     6 int main()
     7 {
     8     int n, m, k1, k2;
     9     cin >> n >> m >> k1 >> k2;
    10     dp[0][0][0][0] = 1;
    11     for(int i = 0; i <= n; ++i) {
    12         for(int j = 0; j <= m; ++j) {
    13             if(j < m) {
    14                 for(int x = 0; x <= k1; ++x) {
    15                     dp[i][j + 1][0][1] += dp[i][j][x][0];
    16                     dp[i][j + 1][0][1] %= mod;
    17                 }
    18             }
    19             if(i < n) {
    20                 for(int x = 0; x <= k2; ++x) {
    21                     dp[i + 1][j][1][0] += dp[i][j][0][x];
    22                     dp[i + 1][j][1][0] %= mod;
    23                 }
    24             }
    25             if(i < n) {
    26                 for(int x = 1; x < k1; ++x) {
    27                     dp[i + 1][j][x + 1][0] += dp[i][j][x][0];
    28                     dp[i + 1][j][x + 1][0] %= mod;
    29                 }
    30             }
    31             if(j < m) {
    32                 for(int x = 1; x < k2; ++x) {
    33                     dp[i][j + 1][0][x + 1] += dp[i][j][0][x];
    34                     dp[i][j + 1][0][x + 1] %= mod;
    35                 }
    36             }
    37         }
    38     }
    39     LL ans = 0;
    40     for(int i = 1; i <= k1; ++i) {
    41         ans = (ans + dp[n][m][i][0]) % mod;
    42     }
    43     for(int i = 1; i <= k2; ++i) {
    44         ans = (ans + dp[n][m][0][i]) % mod;
    45     }
    46     cout << ans << endl;
    47     return 0;
    48 }
  • 相关阅读:
    paip.提高开发效率自动数据库SQL备份
    paip.提升开发效率增量备份项目文件
    paip.提升开发效率使用拼音
    paip.asp vbs代码的排版格式化
    paip.asp vbs的代码折叠代码结构查看
    paip.提升用户体验文件查找
    poj3026
    poj3020
    poj1182
    POJ典型算法例题题号
  • 原文地址:https://www.cnblogs.com/Recoder/p/5907023.html
Copyright © 2011-2022 走看看