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

n , m ≤ 150,k ≤ 20。

Solution

感觉最近降智严重啊……设$f[i][j][x][y]$表示放了$i$个男的,$j$个女的,从当前点往前延伸最大的男减女的差是$x$,最大的女减男的差是$y$。转移看代码吧……

Code

 #include<iostream>
#include<cstdio>
#define MOD (12345678)
using namespace std; int n,m,k,ans,f[][][][]; int main()
{
scanf("%d%d%d",&n,&m,&k);
f[][][][]=;
for (int i=; i<=n; ++i)
for (int j=; j<=m; ++j)
for (int x=; x<=k; ++x)
for (int y=; y<=k; ++y)
{
if (x+<=k) (f[i+][j][x+][max(y-,)]+=f[i][j][x][y])%=MOD;
if (y+<=k) (f[i][j+][max(x-,)][y+]+=f[i][j][x][y])%=MOD;
}
for (int i=; i<=k; ++i)
for (int j=; j<=k; ++j)
(ans+=f[n][m][i][j])%=MOD;
printf("%d\n",ans);
}

BZOJ1037:[ZJOI2008]生日聚会Party(DP)的更多相关文章

  1. [Bzoj1037][ZJOI2008]生日聚会(DP)

    Description 题目链接 Solution 这题状态比较难想, \(dp[i][j][g][h]\)表示强i个人有j个男生,在某个区间男生最多比女生多g人,女生最多比男生多h人的方案数,然后D ...

  2. BZOJ1037 [ZJOI2008]生日聚会Party 【DP】

    1037: [ZJOI2008]生日聚会Party Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 2800  Solved: 1654 [Submi ...

  3. 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, ...

  4. bzoj千题计划125:bzoj1037: [ZJOI2008]生日聚会Party

    http://www.lydsy.com/JudgeOnline/problem.php?id=1037 一个区间是否满足 任意连续的一段,男孩与女孩的数目之差不超过k, 取决于男孩与女孩数目之差的最 ...

  5. bzoj1037 [ZJOI2008]生日聚会

    Description 今天是hidadz小朋友的生日,她邀请了许多朋友来参加她的生日party. hidadz带着朋友们来到花园中,打算坐成一排玩游戏.为了游戏不至于无聊,就座的方案应满足如下条件: ...

  6. BZOJ1037: [ZJOI2008]生日聚会Party

    DP… /************************************************************** Problem: 1037 User: zhuohan123 L ...

  7. BZOJ1037 ZJOI2008生日聚会(动态规划)

    设f[i][j][x][y]为安排了i个男孩j个女孩,后缀最大男孩-女孩数为x,最大女孩-男孩数为y的方案数.转移显然. #include<iostream> #include<cs ...

  8. [luogu2592 ZJOI2008] 生日聚会 (计数dp)

    题目描述 今天是hidadz小朋友的生日,她邀请了许多朋友来参加她的生日party. hidadz带着朋友们来到花园中,打算坐成一排玩游戏.为了游戏不至于无聊,就座的方案应满足如下条件: 对于任意连续 ...

  9. BZOJ 1037: [ZJOI2008]生日聚会Party [序列DP]

    1037: [ZJOI2008]生日聚会Party Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2249  Solved: 1337[Submit] ...

随机推荐

  1. 公司管理系列--80% of Your Culture is Your Founder(FaceBook)

    80% of Your Culture is Your Founder     When Molly Graham joined Facebook in 2008, the company still ...

  2. Swift可选链

    //可选链测试 class Person{ var residence:Residence! var name:String init(name:String){ self.name = name } ...

  3. [javaEE] JDBC快速入门

    JDBC:Java Data Base Connectivity java数据库连接 1.组成JDBC的两个包:主要是接口 java.sql javax.sql 2.相应JDBC的数据库实现 在tom ...

  4. hibernate cascade的真正含义

    hibernate cascade 是 @OneToOne @OneToMany @ManyToOne @ManyToMany等注解的属性,表示级联操作. /** * (Optional) The o ...

  5. Win7下硬盘安装Ubuntu双系统

    一. 准备工作 1. 下载ubuntu镜像文件:Ubuntu-14.04.5-desktop-amd64.iso(4G及以上内存建议64位) 注意这个amd并不是指amd芯片. 2. 下载硬盘分区工具 ...

  6. #!/bin/sh & #!/bin/bash区别

    在shell脚本的开头往往有一句话来定义使用哪种sh解释器来解释脚本.目前研发送测的shell脚本中主要有以下两种方式:(1) #!/bin/sh(2) #!/bin/bash以上两种方式有什么区别? ...

  7. git push报错--私钥问题

    输入git push -u origin master时提示 Permission denied (publickey). fatal: Could not read from remote repo ...

  8. C语言--清理getchar缓存

    getchar()采用了缓冲区,而getch()才是立即获取,所以要想再用getchar()获取正确的值必须先清空缓冲区,如果是windows操作系统,用fflush(stdin)函数或rewind( ...

  9. icon-font 字体图标的引用

    1.font-class引用 font-class是unicode使用方式的一种变种,主要是解决unicode书写不直观,语意不明确的问题. 与unicode使用方式相比,具有如下特点: 兼容性良好, ...

  10. java面试题之----jdbc中使用的设计模式(桥接模式)

    1.JDBC(JavaDatabase Connectivity) JDBC是以统一方式访问数据库的API. 它提供了独立于平台的数据库访问,也就是说,有了JDBC API,我们就不必为访问Oracl ...