共有\(n\)个男孩与\(m\)个女孩打算坐成一排。对于任意连续的一段,男孩与女孩的数目之差不超过 \(k\)。求方案数。

\(n,m \leq 150, k \leq 20\)

Solution

设 \(f[i][j][k][l]\) 表示放了 \(i,j\) 个男女,所有后缀中,男生减女生最大为 \(k\),女生减男生最大为 \(l\) 的方案数

采用“主动转移”

f[i+1][j][k+1][max(l-1,0)]+=f[i][j][k][l]

f[i][j+1][max(k-1,0)][l+1]+=f[i][j][k][l]

#include <bits/stdc++.h>
using namespace std; int f[155][155][22][22],n,m,lim;
const int mod = 12345678; signed main() {
cin>>n>>m>>lim;
f[0][0][0][0]=1;
for(int i=0;i<=n;i++) {
for(int j=0;j<=m;j++) {
for(int k=0;k<=lim;k++) {
for(int l=0;l<=lim;l++) {
(f[i+1][j][k+1][max(l-1,0)]+=f[i][j][k][l])%=mod;
(f[i][j+1][max(k-1,0)][l+1]+=f[i][j][k][l])%=mod;
}
}
}
}
int ans=0;
for(int i=0;i<=lim;i++) {
for(int j=0;j<=lim;j++) {
(ans+=f[n][m][i][j])%=mod;
}
}
cout<<ans;
}

[ZJOI2008] 生日聚会 - dp的更多相关文章

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

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

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

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

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

  4. BZOJ 1037: [ZJOI2008]生日聚会Party 四维DP

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

  5. BZOJ 1037 [ZJOI2008]生日聚会Party

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

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

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

  7. 【BZOJ1037】[ZJOI2008]生日聚会(动态规划)

    [BZOJ1037][ZJOI2008]生日聚会(动态规划) 题面 BZOJ 洛谷 题解 假设前面的都合法,但是在加完当前的最后一个人之后变得不合法了,那么意味着一定有着一个后缀不合法.把男生看成\( ...

  8. BZOJ 1037 生日聚会 DP

    [ZJOI2008]生日聚会Party Time Limit: 10 Sec Memory Limit: 162 MB Description 今天是hidadz小朋友的生日,她邀请了许多朋友来参加她 ...

  9. [ZJOI2008]生日聚会 BZOJ1037 dp

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

随机推荐

  1. Java代码优化实践

    1.   尽量指定类的final修饰符 带有final修饰符的类是不可派生的.指定一个类为final,则该类所有方法都是final.Java编译器会会找机会内联所有否final方法,这样能够使性能平均 ...

  2. linux系统中运行node进程,无法杀死进程

    events.js:72 throw er; // Unhandled 'error' event ^Error: listen EADDRINUSE at errnoException (net.j ...

  3. centos5,6 系统启动流程

    linux内核特点: 支持模块化:模块文件的名字以.ko(kernel object)结尾 支持内核运行时,动态加载和卸载模块文件. linux内核组成部分: 核心文件:/boot/vmlinuz-V ...

  4. Hibernate(六)--缓存策略

    缓存: 缓存就是数据库数据在内存中的临时容器,包括数据库数据在内存中的临时拷贝,它位于数据库与数据库访问中间层,ORM在查询数据时,首先会根据自身的缓存管理策略,在缓存中查找相关数据,如果发现所需的数 ...

  5. C语言关键词——register

    register修饰符暗示编译程序相应的变量将被频繁使用,如果可能的话,应将其保存在CPU的寄存器中,以加快其存储速度 例如:memcpy(des,src,i) { register char * d ...

  6. PERC H310 配置详细步骤【阵列RAID创建】【阵列恢复】【阵列池创建】

    机器配置: HP PRO6300 二手淘的201912,HP的主板芯片Intel Q75芯片组,集成显卡(集成显卡与H310阵列卡冲突),CPU Intel I5 3450 [raid5阵列创建] 1 ...

  7. 斯坦福发布2019全球AI报告:中国论文数量超美国,自动驾驶汽车领域获投资最多

    近日,斯坦福联合MIT.哈佛.OpenAI等院校和机构发布了一份291页的<2019年度AI指数报告>. 这份长达291页的报告从AI的研究&发展.会议.技术性能.经济.教育.自动 ...

  8. k8s 在Centos上 安装

    k8s安装步骤: 1.所有机器上执行以下命令,准备安装环境:(注意是所有机器,主机master,从机node都要安装) 1.1.安装epel-release源(EPEL (Extra Packages ...

  9. 免费免驱动从网上截取正版音乐与MV及视频

    在QQ Music里听到Alan Walker 的 Songs,想download,但是要绿钻.MV也有QQ音乐的logo,这下有了一个绝佳的办法! Tools:1.Gihosoft TubeGet  ...

  10. 用浏览器的油猴子脚本调用IDM下载百度云盘中的资料

    用浏览器的油猴子脚本调用IDM下载百度云盘中的资料(只能支持单个文件下载) 第一步需要现在浏览器中安装油猴子插件Tampermonkey.crx 安装油猴子插件插件主页:https://tamperm ...