【题目链接】 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)相关推荐

  1. bzoj 1037: [ZJOI2008]生日聚会Party

    1037: [ZJOI2008]生日聚会Party Description 今天是hidadz小朋友的生日,她邀请了许多朋友来参加她的生日party. hidadz带着朋友们来到花园中,打算 坐成一排 ...

  2. 1037: [ZJOI2008]生日聚会Party

    1037: [ZJOI2008]生日聚会Party Time Limit: 10 Sec   Memory Limit: 162 MB Submit: 2102   Solved: 1246 [ Su ...

  3. [ZJOI2008]生日聚会Party

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

  4. P2592 [ZJOI2008]生日聚会(dp)

    P2592 [ZJOI2008]生日聚会(dp) dp,关键是如何表示男女差的状态. 因此设dp(i,j,k,l)dp(i,j,k,l)dp(i,j,k,l)表示用iii个男生,jjj个女生,男生与女 ...

  5. bzoj1037[ZJOI2008]生日聚会Party dp

    [ZJOI2008]生日聚会Party Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 2832  Solved: 1674 [Submit][Sta ...

  6. bzoj1037 [ZJOI2008]生日聚会Party 插数dp

    这个题首先要认清楚任意一个区间差不超过k个怎么理解 看到k一般想的是装压,但如果是状压的思路的话,就需要前k个满足某种条件,于是有可能会猜到前k个满足非全0或1,但这是显然错误的 由于仅仅考虑前k个并 ...

  7. P2592 [ZJOI2008]生日聚会

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

  8. ZJOI2008 生日聚会

    传送门 这道题很明显是DP.不过一开始我错误的以为是区间DP--但是并不是这样.因为区间DP它需要满足区间的情况是确定的,而这道题并不是确定的情况,所以不是区间DP. 重新考虑,设dp[i][j][p ...

  9. BZOJ1037洛谷P2592 [ZJOI2008]生日聚会

    四重循环大模拟 我们考虑f[i][j][k][e]表示前i个人,有j个男生,女生个数即为i-j,任意一段中男生最多比女生多k个,女生比男生最多多e个, 那么当前状态可以转移到 1.在j<n的情况 ...

最新文章

  1. pytorch 查看模型参数,查看模型特定层输入输出,模型结构图绘制总结
  2. ICMP 隧道——将流量封装进 IMCP 的 ping 数据包中,旨在利用 ping 穿透防火墙的检测...
  3. Android APK反编译详解(附图)(转)
  4. c++和python先学哪个?
  5. 关于SDL SDL_CreateWindowFrom和SDL_DestroyWindow第二次后无法将视频显示出来。
  6. git 拉取gitlab代码
  7. 【GNN】图神经网络综述
  8. 如何把IDEA项目与上传到Git中
  9. 如何在 Mac 上设置和使用快捷方式?
  10. 《数据结构与抽象:Java语言描述(原书第4版)》一2.2 使用可变大小的数组实现ADT包...
  11. 如何复制百度文档中的内容
  12. linux qt触摸屏配置,QT触摸屏的实现
  13. 组装台式计算机配置清单,组装台式机清单配置,组装台式机详细清单
  14. 非接触式IC卡(Mifare)读写芯片
  15. 计算时代正在消灭中产阶级
  16. 博弈论:子博弈精炼均衡(子博弈都是纳什均衡,比纳什均衡更强的概念)
  17. VMware Workstation虚拟机环境下Xubuntu系统如何添加中文输入法
  18. linux 如何设置待机时间_linux 休眠功能介绍(转)
  19. 情商比智商更能决定人的一生
  20. 开源的工作流都有哪些特征?

热门文章

  1. python训练营微信广告发送机_python实现给微信公众号发送消息的方法
  2. c语言字符串反转栈,【C语言】利用栈将数组中字符串逆序
  3. layUI提交多个相同name的值
  4. linux后台执行shell脚本
  5. HDOJ水题集合7:记忆化搜索
  6. 【CCCC】L3-021 神坛 (30分)计算几何+求三角形面积(极角排序)
  7. 【PAT】2020年春季考试划水准备贴
  8. 把变量赋值给寄存器_阻塞赋值和非阻塞赋值的区别与记忆
  9. JavaScript数据类型之数字型(4)
  10. 展开收起js动画效果