1037: [ZJOI2008]生日聚会Party - BZOJ
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
对于30%的数据,n , m ≤ 20;对于100%的数据, n , m ≤ 150,k ≤ 20。
裸dp,f[a,b,c,d]表示有a个女的,b个男的,以最后一个人为右端点的女的最多比男的多c个,男的最多比女的多d个
(你要问我为什么这样表示,为什么第一维不是长度,我只能说Wikioi的云IDE内存不够大,况且我习惯用广度优先搜索,这样表示没有浪费空间,如果第一维是长度,那a<b的那一部分就用不到了,很浪费)
const
h=;
maxq=***;
type
point=record
a,b,c,d:longint;
end;
var
f:array[..,..,..,..]of longint;
q:array[..maxq]of point;
n,m,k,head,tail,ans:longint; function max(x,y:longint):longint;
begin
if x>y then exit(x);
exit(y);
end; procedure main;
begin
read(n,m,k);
head:=;
tail:=;
fillchar(f,sizeof(f),);
f[,,,]:=;
while head<>tail do
begin
with q[head] do
if (a=n) and (b=m) then ans:=(ans+f[a,b,c,d])mod h
else
begin
if (a<n) and (c<k) then
begin
if f[a+,b,c+,max(,d-)]>h then
begin
q[tail].a:=a+;
q[tail].b:=b;
q[tail].c:=c+;
q[tail].d:=max(,d-);
f[a+,b,c+,max(,d-)]:=;
tail:=tail mod maxq+;
end;
f[a+,b,c+,max(,d-)]:=(f[a+,b,c+,max(,d-)]+f[a,b,c,d])mod h;
end;
if (b<m) and (d<k) then
begin
if f[a,b+,max(,c-),d+]>h then
begin
q[tail].a:=a;
q[tail].b:=b+;
q[tail].c:=max(,c-);
q[tail].d:=d+;
f[a,b+,max(,c-),d+]:=;
tail:=tail mod maxq+;
end;
f[a,b+,max(,c-),d+]:=(f[a,b+,max(,c-),d+]+f[a,b,c,d])mod h;
end;
end;
head:=head mod maxq+;
end;
write(ans);
end; begin
main;
end.
1037: [ZJOI2008]生日聚会Party - BZOJ的更多相关文章
- BZOJ 1037 [ZJOI2008]生日聚会Party
1037: [ZJOI2008]生日聚会Party Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1583 Solved: 936[Submit][ ...
- 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, ...
- BZOJ 1037: [ZJOI2008]生日聚会Party [序列DP]
1037: [ZJOI2008]生日聚会Party Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2249 Solved: 1337[Submit] ...
- BZOJ 1037: [ZJOI2008]生日聚会Party 四维DP
1037: [ZJOI2008]生日聚会Party Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1650 Solved: 971[Submit][ ...
- 【BZOJ】1037: [ZJOI2008]生日聚会Party(递推+特殊的技巧)
http://www.lydsy.com/JudgeOnline/problem.php?id=1037 看来自己越来越弱了... 这些计数题设计的状态都很巧妙,,自己智商太低QAQ 和矩阵dp做的那 ...
- bzoj 1037 [ZJOI2008]生日聚会Party(DP)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1037 [题意] 一排n男m女,求满足任意连续段男女人数之差不超过k的数目. [思路] ...
- BZOJ 1037 [ZJOI2008]生日聚会Party(单调DP)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1037 [题目大意] 现在有n个男生,m个女生排成一行,要求不存在一个区间男女之差大于k ...
- BZOJ 1037: [ZJOI2008]生日聚会Party(区间dp)
http://www.lydsy.com/JudgeOnline/problem.php?id=1037 题意: 思路: 四维数组进行dp,dp[i][j][a][b]表示进行到第i个座位时已经有j个 ...
- [BZOJ] 1037 [ZJOI2008]生日聚会
Time Limit: 10 Sec Memory Limit: 162 MB Submit: 3007 Solved: 1795 [Submit][Status][Discuss] Descript ...
随机推荐
- IE9+浏览器input文本框/密码框后面的小叉子/小眼睛清除
为了方便我们的触控操作,IE高等浏览器针对input及input type="password"分别提供了快速清除钮(X图标)以及密码文字显示钮(小眼睛图标)的功能. 由于这经常跟 ...
- UML-用例
- Cocos2d-x使用瓦片地图
图所示的复杂地图可以使用瓦片地图技术,瓦片地图是用一些小图片(瓦片)拼接而成,这样可以大大地减少内存消耗.如图所示的瓦片地图,只需要如图所示的三个瓦片就可以了. 瓦片地图 地图中的瓦片 瓦片地图的分类 ...
- mysql5.7版本免安装配置教程
自己花了两天时间才搞清楚,希望对新手有一定帮助,有问题可以联系哦! mysql分为安装版本msi,免安装要压缩版本ZIP,下载网址:http://dev.mysql.com/downloads 免安装 ...
- Bresenham算法画填充圆及SDL代码实现
画圆是计算机图形操作中一个非常重要的需求.普通的画圆算法需要大量的浮点数参与运算,而众所周知,浮点数的运算速度远低于整形数.而最终屏幕上影射的像素的坐标均为整形,不可能是连续的线,所以浮点数运算其实纯 ...
- C#中子类调用父类的实现方法
这篇文章主要介绍了C#中子类调用父类的实现方法,通过实例逐步分析了类中初始化构造函数的执行顺序问题,有助于加深对C#面向对象程序设计的理解,需要的朋友可以参考下 本文实例讲述了C#中实现子类调 ...
- Apache使用mysql认证用户
使用MySQL进行认证 第1步:下载MySQL认证模块,并更名为mod_auth_mysql.so文件,并保存在apache的modules目录下 第2步:apache要加载此功能模块 LoadMod ...
- 代码优化—From <effective C++>
1.尽可能的延后变量定义式的出现时间 不止应该延后变量的定义,直到非得使用该变量的前一刻为止,甚至应该尝试延后这份定义直到能够给它初值实参为止. 如果这样不仅能够避免构造和析构非必要对象,还可以避免无 ...
- [java学习笔记]java语言基础概述之运算符&程序流程控制&for循环嵌套
一.运算符 算数运算符 +,-,*,/,%,++,-- 1.+,-,*,/ 整数除以整数的结果为舍弃了小数部分的整数. 2.%:取余 %左右都为正数,左边小于右边结果为左边值,如,4%5=4 %左边大 ...
- php cURL library is not loaded
问题: php 在命令行里面可以找到 curl 模块,但是用apache 没有找到 curl 模块. 表现内容为: extension_loaded('curl')cURL library is no ...