Link:

BZOJ 1037 传送门

Solution:

由于对任意一段都有要求,于是我们对于所有前缀考虑其后缀不超过$k $即可:

设$dp[i][j][x][y]$为前$i$个人中有$j$个男孩,且后缀中男女最大相差$x$,女男最大相差$y$时的方案数

每次向添加女孩/添加男孩转移。

注意:如果差值为负数时置为$0$,因为无论差了多少,在下一次添加相同性别时最大相差都会变为$1$

Code:

#include <bits/stdc++.h>using namespace std;
const int MOD=12345678;
const int MAXN=155;
int dp[2*MAXN][MAXN][25][25],n,m,k,res=0;int main()
{scanf("%d%d%d",&n,&m,&k);dp[0][0][0][0]=1; //初始值for(int i=0;i<n+m;i++) for(int j=0;j<=n;j++)for(int x=0;x<=k;x++) for(int y=0;y<=k;y++)if(dp[i][j][x][y]){if(j+1<=n && x+1<=k) (dp[i+1][j+1][x+1][max(0,y-1)]+=dp[i][j][x][y])%=MOD;if(y+1<=k && i+1-j<=m) (dp[i+1][j][max(0,x-1)][y+1]+=dp[i][j][x][y])%=MOD;}for(int i=0;i<=n;i++) for(int j=0;j<=k;j++) for(int x=0;x<=k;x++)(res+=dp[n+m][i][j][x])%=MOD;printf("%d",res);return 0;
}

Review:

(1)如果转移为向后添加数时,一般用已知数向后转移未知数更方便,而非未知数反推已知数

(2)如果对“任意一段”有要求时,转移时保证每一个前缀的最差后缀都合法即可

转载于:https://www.cnblogs.com/newera/p/9157648.html

[BZOJ 1037] 生日聚会Party相关推荐

  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. 图灵五周年生日聚会圆满成功,多家媒体对此进行报道

    "图灵五年 抓牢IT引进版" ,http://sinaurl.cn/qZ0yh .<出版商务周报> 对图灵五周年生日聚会进行了报道,同时对图灵总经理武卫东进行了访问. ...

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

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

  6. 生日游戏html,创意生日聚会游戏

    导语:生日聚会上除了吃蛋糕和唱生日歌,游戏才是热场的好方式,下面接下来就由jy135小编给大家带来一些创意的生日聚会游戏,希望大家喜欢. 创意生日聚会游戏 1.俄罗斯转盘 取 六个杯子,分别倒等量或者 ...

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

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

  8. 大一集训题i题生日聚会lightoj-1008 - Fibsieve`s Fantabulous Birthday

    大一集训题i题生日聚会lightoj-1008 - Fibsieve`s Fantabulous Birthday **大一集训题i题生日聚会lightoj-1008 - Fibsieves Fant ...

  9. BZOJ 1037 [ZJOI2008]生日聚会Party(单调DP)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1037 [题目大意] 现在有n个男生,m个女生排成一行,要求不存在一个区间男女之差大于k ...

最新文章

  1. php获取表字段,使用 php 获取表的字段信息
  2. python中的继承有什么特点_python类的继承是什么?类的继承有什么样的规则?
  3. QT判断操作系统版本
  4. golang第三方日志包seelog配置文件详解
  5. DEBUG日记:同样的代码在不同的环境却得出不同的结果。
  6. Spring Boot中使用Redis数据库
  7. 从小小后视镜看物联网的生态(下)
  8. 笔记05 局部类型
  9. java jpa更新数据_Java如何使用JPA更新实体对象?
  10. 实现添加商品信息功能
  11. python画图包-Python 绘图包 Matplotlib Pyplot 教程
  12. C#多线程的用法2-线程的生命周期
  13. WhatsApp拟取消服务订阅年费
  14. 7月6号奥特曼服务器维护中,泰迦奥特曼:7月6号开播,泰迦是泰罗儿子,优幸可变为三个奥特曼...
  15. 计算机社团个人简介怎么写,社团个人简历怎么写
  16. 有人喜欢有人嫉妒,竟然因为这上了互联网热搜
  17. 1分钟链圈 | 有趣!BM评价V神新共识算法:这是「非拜占庭容错机制」的终结者...
  18. 游标CURSOR的基本用法
  19. 你想要的虚幻UE游戏人物模型素材都在这里,细致又齐全
  20. MarkMan – 马克鳗,让设计更有爱!

热门文章

  1. Fundebug接入前端项目
  2. 找你妹+ipad+wifi,回顾那年的经典游戏
  3. Idea 常用快捷键 (spring boot)
  4. DDL语言基础操作梳理(未涉及约束部分版)
  5. java 修饰符默认_Java中的默认访问修饰符是什么?
  6. Excel怎么将小数转为分数
  7. MySQL数据表--创建多表、以及多表关系(添加外键)
  8. 理解Linux TunTap设备
  9. EXCEL-2.让录制的宏高效运行
  10. 《致我们终将逝去的青春》看过电影,还是觉得书好!!!