BZOJ1037 DP
2013-11-15 21:51
原题传送门http://www.lydsy.com/JudgeOnline/problem.php?id=1037
拿到这道题想到了DP,后来发现三维无法确定的表示状态(起码我是表示不出来)
然后就用四维表示状态,w[i,j,k1,k2]表示一共i个人,j个男生,前i-1个人中任意一个人到第i个人的区间里,男生比女生最多多k1个人且存在k1的情况,
女生比男生最多多k2个人且存在k2的情况
那么w[i,j,k1,k2]这个状态可以更新w[i+1,j+1,k1+1,max(k2-1,0)]表示第i+1个位置放的男生,w[i+1,j,max(k1-1),k2+1]表示放的女生,那么就可以转移了。
//By BLADEVIL
const
d39 =; var
n, m, k :longint;
i, j, k1, k2 :longint;
w :array[..,..,..,..] of longint;
ans :longint;
function max(a,b:longint):longint;
begin
if a>b then max:=a else max:=b;
end;
begin
read(n,m,k);
w[,,,]:=;
w[,,,]:=;
for i:= to n+m- do
for j:= to i do
for k1:= to k do
for k2:= to k do
begin
if w[i,j,k1,k2]= then continue;
if (k1<k) and (j<n) then
w[i+,j+,k1+,max(k2-,)]:=(w[i+,j+,k1+,max(k2-,)]+w[i,j,k1,k2]) mod d39;
if (k2<k) and (i-j<m) then
w[i+,j,max(k1-,),k2+]:=(w[i+,j,max(k1-,),k2+]+w[i,j,k1,k2]) mod d39;
end;
ans:=;
for i:= to k do
for j:= to k do ans:=(ans+w[n+m,n,i,j]) mod d39;
writeln(ans);
end.
BZOJ1037 DP的更多相关文章
- [ZJOI2008]生日聚会 BZOJ1037 dp
题目描述 今天是hidadz小朋友的生日,她邀请了许多朋友来参加她的生日party. hidadz带着朋友们来到花园中,打算坐成一排玩游戏.为了游戏不至于无聊,就座的方案应满足如下条件: 对于任意连续 ...
- BZOJ1037 [ZJOI2008]生日聚会Party 【DP】
1037: [ZJOI2008]生日聚会Party Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2800 Solved: 1654 [Submi ...
- [Bzoj1037][ZJOI2008]生日聚会(DP)
Description 题目链接 Solution 这题状态比较难想, \(dp[i][j][g][h]\)表示强i个人有j个男生,在某个区间男生最多比女生多g人,女生最多比男生多h人的方案数,然后D ...
- BZOJ1037:[ZJOI2008]生日聚会Party(DP)
Description 今天是hidadz小朋友的生日,她邀请了许多朋友来参加她的生日party.hidadz带着朋友们来到花园中,打算坐成一排玩游戏. 为了游戏不至于无聊,就座的方案应满足如下条件: ...
- bzoj1037生日聚会——DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1037 记录每个状态时前面所有连续子序列中男生与女生差距的最大值,根据那个转移即可. 代码如下 ...
- 【bzoj1037】 ZJOI2008—生日聚会Party
http://www.lydsy.com/JudgeOnline/problem.php?id=1037 (题目链接) 题意 有n个boy和m个girl排成一排,求使得任意一段的boy个数girl个数 ...
- BZOJ 1911: [Apio2010]特别行动队 [斜率优化DP]
1911: [Apio2010]特别行动队 Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 4142 Solved: 1964[Submit][Statu ...
- 2013 Asia Changsha Regional Contest---Josephina and RPG(DP)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4800 Problem Description A role-playing game (RPG and ...
- AEAI DP V3.7.0 发布,开源综合应用开发平台
1 升级说明 AEAI DP 3.7版本是AEAI DP一个里程碑版本,基于JDK1.7开发,在本版本中新增支持Rest服务开发机制(默认支持WebService服务开发机制),且支持WS服务.RS ...
随机推荐
- jackson 处理空值
@JsonInclude(value=Include.NON_NULL) public class ResultBean 这样在返回数据的时候, { "code": "s ...
- linux内存
在Linux的世界中,从大的方面来讲,有两块内存,一块叫做内存空间,Kernel Space,另一块叫做用户空间,即User Space.它们是相互独立的,Kernel对它们的管理方式也完全不同 驱动 ...
- Qt Qwdget 汽车仪表知识点拆解5 标题栏图标闪烁
先贴上效果图,注意,没有写逻辑,都是乱动的 看下最上面的部分,有一些仪表图标在闪烁,如果一个一个写,也是可以实现的,不过感觉要累死的节奏 这里我写了一个我自己的Label,完了把把这些QLabel提升 ...
- 图的同构 (Graph Isomorphism)
整理摘自:https://www.jianshu.com/p/c33b5d1b4cd9 同构是在数学对象之间定义的一类映射,它能揭示出在这些对象的属性或者操作之间存在的关系.若这两个数学结构之间存在同 ...
- Week1 Team Homework #1 from Z.XML-项目选择思路--基于对曾经大作业项目的思考
这两天试玩了一下去年学长的满分工程<shield star>游戏,再结合了一下他们团队的博客记录,有一种非常牛逼的感觉.具体对于这款游戏的一些思考和看法,毛大神已经说的很好了.因此,这里主 ...
- Linux C++线程池实例
想做一个多线程服务器测试程序,因此参考了github的一些实例,然后自己动手写了类似的代码来加深理解. 目前了解的线程池实现有2种思路: 第一种: 主进程创建一定数量的线程,并将其全部挂起,此时线程状 ...
- 一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。求总共有 多少总跳法?
首先我们考虑最简单的情况:如果只有1 级台阶,那显然只有一种跳法,如果有2 级台阶,那就有两种跳的方法了:一种是分两次跳,每次跳1 级:另外一种就是一次跳2 级.现在我们再来讨论一般情况:我们把n 级 ...
- 配置apache反向代理进行跨域
配置apache反向代理 打开配置文件httpd.conf 开启 proxy_http_module 和 proxy_module 模块,将#号删除 #LoadModule proxy_module ...
- fckeditor的简单使用
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEnco ...
- 【学习笔记】Learning OpenCV3——Ch8 working with video
Reading Video with the cv::VideoCapture Object 对象创建的三种方法: // 1. Input filename cv::VideoCapture::Vid ...