• BZOJ 1037: [ZJOI2008]生日聚会Party( dp )


    dp(i, j, a, b)表示选了i个男生, j个女生, 后缀中男生比女生多a(最多), 女生比男生多b(最多). 

    dp(i+1, j, a+1, max(0, b-1)) += dp(i, j, a, b)

    dp(i, j+1, max(0, a-1), b+1) += dp(i, j, a, b)

    时间复杂度O(NMK^2) 

    -------------------------------------------------------------------------------------

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
     
    using namespace std;
     
    const int maxn = 159;
    const int maxk = 29;
    const int MOD = 12345678;
     
    int dp[maxn][maxn][maxk][maxk];
    int B, G, K;
     
    inline void upd(int &x, int t) {
    if((x += t) >= MOD)
    x -= MOD;
    }
     
    int main() {
    scanf("%d%d%d", &B, &G, &K);
    memset(dp, 0, sizeof dp);
    dp[0][0][0][0] = 1;
    for(int i = 0; i <= B; i++)
    for(int j = 0; j <= G; j++)
    for(int a = 0; a <= K; a++)
    for(int b = 0; b <= K; b++) {
    upd(dp[i + 1][j][a + 1][max(0, b - 1)], dp[i][j][a][b]);
    upd(dp[i][j + 1][max(0, a - 1)][b + 1], dp[i][j][a][b]);
    }
    int ans = 0;
    for(int a = 0; a <= K; a++)
    for(int b = 0; b <= K; b++)
    upd(ans, dp[B][G][a][b]);
    printf("%d ", ans);
    return 0;
    }

    -------------------------------------------------------------------------------------

    1037: [ZJOI2008]生日聚会Party

    Time Limit: 10 Sec  Memory Limit: 162 MB
    Submit: 1785  Solved: 1058
    [Submit][Status][Discuss]

    Description

    今天是hidadz小朋友的生日,她邀请了许多朋友来参加她的生日party。 hidadz带着朋友们来到花园中,打算坐成一排玩游戏。为了游戏不至于无聊,就座的方案应满足如下条件:对于任意连续的一段,男孩与女孩的数目之差不超过k。很快,小朋友便找到了一种方案坐了下来开始游戏。hidadz的好朋友Susie发现,这样的就座方案其实是很多的,所以大家很快就找到了一种,那么到底有多少种呢?热爱数学的hidadz和她的朋友们开始思考这个问题…… 假设参加party的人中共有n个男孩与m个女孩,你是否能解答Susie和hidadz的疑问呢?由于这个数目可能很多,他们只想知道这个数目除以12345678的余数。

    Input

    仅包含一行共3个整数,分别为男孩数目n, 女孩数目m, 常数k。

    Output

    应包含一行,为题中要求的答案。

    Sample Input

    1 2 1

    Sample Output

    1

    HINT

    对于100%的数据, n , m ≤ 150,k ≤ 20。

    Source

  • 相关阅读:
    [ubuntu] aptget 详解
    zoj 1048 求平均数 python
    zoj 1001 A+B Python版本
    HustOj 数据库分析(r1292) [—夏 夏 ]
    poj 3020 Antenna Placement 夜
    poj 3349 Snowfalke Snow Snowflakes 夜
    poj 1062 昂贵的聘礼 夜
    poj 3368 Frequent values 夜
    poj 2524 Ubiquitous Religions 夜
    poj 1273 Drainage Ditches 夜
  • 原文地址:https://www.cnblogs.com/JSZX11556/p/5122590.html
Copyright © 2020-2023  润新知