题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1037

任意区间的话,可以从所有后缀区间考虑。

  因为每一个区间一定是某一时刻的一个后缀区间,所以只要每一时刻的后缀区间均合法,就行了。

当然有状态是几个男孩、几个女孩,还可以记录状态:最大的男孩减女孩的差 和 最大的女孩减男孩的差,这样就能转移了。

没错,只要关注后缀区间就行了!所以是max(0,u-1)而不是维持u不变!(当它是负数的时候就不用管了,因为已经且仅体现在另一维中)

#include<iostream>
#include<cstdio>
#include<cstring>
#define ll long long
using namespace std;
const int N=,K=;
const ll mod=;
int n,m,k;
ll dp[N][N][K][K],ans;
int main()
{
scanf("%d%d%d",&n,&m,&k);
dp[][][][]=;
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
for(int u=;u<=k;u++)
for(int v=;v<=k;v++)
{
(dp[i+][j][u+][max(,v-)]+=dp[i][j][u][v])%=mod;
(dp[i][j+][max(,u-)][v+]+=dp[i][j][u][v])%=mod;
}
for(int u=;u<=k;u++)for(int v=;v<=k;v++)(ans+=dp[n][m][u][v])%=mod;
printf("%lld",ans);
return ;
}

bzoj1037生日聚会的更多相关文章

  1. bzoj1037生日聚会——DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1037 记录每个状态时前面所有连续子序列中男生与女生差距的最大值,根据那个转移即可. 代码如下 ...

  2. [bzoj1037]生日聚会

    dp,用f[i][j][x][y]表示i个男孩,j个女孩,以i+j为结尾的子序列男-女最多为x,女-男最多为y的合法方案数,转移到f[i+1][j][x+1][max(y-1,0)]和f[i][j+1 ...

  3. 【BZOJ1037】[ZJOI2008]生日聚会(动态规划)

    [BZOJ1037][ZJOI2008]生日聚会(动态规划) 题面 BZOJ 洛谷 题解 假设前面的都合法,但是在加完当前的最后一个人之后变得不合法了,那么意味着一定有着一个后缀不合法.把男生看成\( ...

  4. bzoj千题计划125:bzoj1037: [ZJOI2008]生日聚会Party

    http://www.lydsy.com/JudgeOnline/problem.php?id=1037 一个区间是否满足 任意连续的一段,男孩与女孩的数目之差不超过k, 取决于男孩与女孩数目之差的最 ...

  5. BZOJ1037 [ZJOI2008]生日聚会Party 【DP】

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

  6. BZOJ 1037 [ZJOI2008]生日聚会Party

    1037: [ZJOI2008]生日聚会Party Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1583  Solved: 936[Submit][ ...

  7. 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, ...

  8. BZOJ 1037: [ZJOI2008]生日聚会Party [序列DP]

    1037: [ZJOI2008]生日聚会Party Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2249  Solved: 1337[Submit] ...

  9. 生日聚会 BZOJ 1037

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

随机推荐

  1. mis权限系统

    在mis中开发,主要目的是有一个统一的权限管理(即r360.right表),以及一个统一的系统和界面供后台配置管理 1.数据库准备工作: mis后台涉及表: right表是权限操作表,role_rig ...

  2. 调用libpci库出现的问题和解决方法

    调用libpci库出现的问题和解决方法   本方案以pciutils-3.5.1为例.   1. 从以下地址下载pciutils-3.5.1.tar.xz https://www.kernel.org ...

  3. 51nod 1179 最大的最大公约数 一种筛选的方法

    1179 最大的最大公约数 题目来源: SGU 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 给出N个正整数,找出N个数两两之间最大公约数的最大值 ...

  4. JVM史上最佳入门指南

    提到Java虚拟机(JVM),可能大部分人的第一印象是“难”,但当让我们真正走入“JVM世界”的时候,会发现其实问题并不像我们想象中的那么复杂.唯一真正令我们恐惧的,其实是恐惧本身.而作为整个JVM系 ...

  5. thinkphp3.2笔记(2)调试模式,配置项C,创建模块, 四种URL模式,URL生成,跳转

    一.调试模式 TP的调试模式其实就控制了TP关于配置信息以及函数的缓存功能 如果开启了调试模式,每次访问项目,Tp都会去加载最新的配置以及函数信息. 如果关闭了调试模式,当tp第一次访问时会降配置以及 ...

  6. Idea2018激活

    [help]-->[register]-->[license server]-->输入下方链接 http://xdouble.cn:8888/ 如果不行,请用下面的这个: http: ...

  7. 使用axios 报 name.toUpperCase is not a function

    使用axios 报 name.toUpperCase is not a function 可能是许久没有用vue了,有些生疏,加上尝试之前总结的思路,这次在项目上实现时,碰到的问题.让人有些懵,不知所 ...

  8. oracle增加sequence

    (1)删除序列;  (2)重新创建: 这个方法比较简单粗暴. drop sequence  sequence_name; create sequence   sequence_name minvalu ...

  9. 003PHP文件处理——目录操作:rename scandir

    <?php //目录操作:rename scandir /** * 修改目录名字: * rename('旧名字','新名字') 改变文件夹或者文件的名称 */ //var_dump(rename ...

  10. PHP:第五章——字符串过滤函数

    <?php header("Content-Type:text/html;charset=utf-8"); //字符串过滤函数: //1.n12br 在所有新行之前插入Htm ...