BZOJ 1037 [ZJOI2008]生日聚会Party(单调DP)
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=1037
【题目大意】
现在有n个男生,m个女生排成一行,要求不存在一个区间男女之差大于k,求方案数。
【题解】
因为求方案数,我们考虑到一种类似于背包问题求方案数的dp方法,dp[i][j][u][v]表示男生i个女生j个,男比女多u个,女比男多v个的方案数,在统计数注意越界的情况就好。
【代码】
#include <cstdio>
#include <algorithm>
using namespace std;
const int mod=12345678;
int dp[200][200][30][30],ans,n,m,k;
int main(){scanf("%d%d%d",&n,&m,&k);dp[0][0][0][0]=1;for(int i=0;i<=n;i++)for(int j=0;j<=m;j++)for(int u=0;u<=k;u++)for(int v=0;v<=k;v++){(dp[i+1][j][u+1][max(0,v-1)]+=dp[i][j][u][v])%=mod;(dp[i][j+1][max(0,u-1)][v+1]+=dp[i][j][u][v])%=mod;}for(int u=0;u<=k;u++)for(int v=0;v<=k;v++)ans=(ans+dp[n][m][u][v])%mod;printf("%d\n",ans);return 0;
}
转载于:https://www.cnblogs.com/forever97/p/bzoj1037.html
BZOJ 1037 [ZJOI2008]生日聚会Party(单调DP)相关推荐
- bzoj 1037: [ZJOI2008]生日聚会Party
1037: [ZJOI2008]生日聚会Party Description 今天是hidadz小朋友的生日,她邀请了许多朋友来参加她的生日party. hidadz带着朋友们来到花园中,打算 坐成一排 ...
- 1037: [ZJOI2008]生日聚会Party
1037: [ZJOI2008]生日聚会Party Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2102 Solved: 1246 [ Su ...
- [ZJOI2008]生日聚会Party
1037: [ZJOI2008]生日聚会Party Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2907 Solved: 1727 [Submi ...
- P2592 [ZJOI2008]生日聚会(dp)
P2592 [ZJOI2008]生日聚会(dp) dp,关键是如何表示男女差的状态. 因此设dp(i,j,k,l)dp(i,j,k,l)dp(i,j,k,l)表示用iii个男生,jjj个女生,男生与女 ...
- bzoj1037[ZJOI2008]生日聚会Party dp
[ZJOI2008]生日聚会Party Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2832 Solved: 1674 [Submit][Sta ...
- bzoj1037 [ZJOI2008]生日聚会Party 插数dp
这个题首先要认清楚任意一个区间差不超过k个怎么理解 看到k一般想的是装压,但如果是状压的思路的话,就需要前k个满足某种条件,于是有可能会猜到前k个满足非全0或1,但这是显然错误的 由于仅仅考虑前k个并 ...
- P2592 [ZJOI2008]生日聚会
题目描述 今天是hidadz小朋友的生日,她邀请了许多朋友来参加她的生日party. hidadz带着朋友们来到花园中,打算坐成一排玩游戏.为了游戏不至于无聊,就座的方案应满足如下条件: 对于任意连续 ...
- ZJOI2008 生日聚会
传送门 这道题很明显是DP.不过一开始我错误的以为是区间DP--但是并不是这样.因为区间DP它需要满足区间的情况是确定的,而这道题并不是确定的情况,所以不是区间DP. 重新考虑,设dp[i][j][p ...
- BZOJ1037洛谷P2592 [ZJOI2008]生日聚会
四重循环大模拟 我们考虑f[i][j][k][e]表示前i个人,有j个男生,女生个数即为i-j,任意一段中男生最多比女生多k个,女生比男生最多多e个, 那么当前状态可以转移到 1.在j<n的情况 ...
最新文章
- pytorch 查看模型参数,查看模型特定层输入输出,模型结构图绘制总结
- ICMP 隧道——将流量封装进 IMCP 的 ping 数据包中,旨在利用 ping 穿透防火墙的检测...
- Android APK反编译详解(附图)(转)
- c++和python先学哪个?
- 关于SDL SDL_CreateWindowFrom和SDL_DestroyWindow第二次后无法将视频显示出来。
- git 拉取gitlab代码
- 【GNN】图神经网络综述
- 如何把IDEA项目与上传到Git中
- 如何在 Mac 上设置和使用快捷方式?
- 《数据结构与抽象:Java语言描述(原书第4版)》一2.2 使用可变大小的数组实现ADT包...
- 如何复制百度文档中的内容
- linux qt触摸屏配置,QT触摸屏的实现
- 组装台式计算机配置清单,组装台式机清单配置,组装台式机详细清单
- 非接触式IC卡(Mifare)读写芯片
- 计算时代正在消灭中产阶级
- 博弈论:子博弈精炼均衡(子博弈都是纳什均衡,比纳什均衡更强的概念)
- VMware Workstation虚拟机环境下Xubuntu系统如何添加中文输入法
- linux 如何设置待机时间_linux 休眠功能介绍(转)
- 情商比智商更能决定人的一生
- 开源的工作流都有哪些特征?