[Bzoj1037][ZJOI2008]生日聚会(DP)
Description
Solution
这题状态比较难想,
\(dp[i][j][g][h]\)表示强i个人有j个男生,在某个区间男生最多比女生多g人,女生最多比男生多h人的方案数,然后DP即可
最后答案是是所有\(dp[n+m][n][i][j](0\leq i,j\leq k)\)加起来
Code
#include <cstdio>
#include <algorithm>
using namespace std;
const int mo=12345678;
int n,m,k,dp[310][160][23][23],Ans;
int main(){
scanf("%d%d%d",&n,&m,&k);
dp[0][0][0][0]=1;
for(int i=0;i<=n+m-1;++i)
for(int j=0;j<=n;++j)
for(int g=0;g<=k;++g)
for(int h=0;h<=k;++h){
if(j+1<=n&&g+1<=k) (dp[i+1][j+1][g+1][max(h-1,0)]+=dp[i][j][g][h])%=mo;
if(i-j+1<=m&&h+1<=k) (dp[i+1][j][max(g-1,0)][h+1]+=dp[i][j][g][h])%=mo;
}
for(int i=0;i<=k;++i)for(int j=0;j<=k;++j)(Ans+=dp[n+m][n][i][j])%=mo;
printf("%d\n",Ans);
return 0;
}
[Bzoj1037][ZJOI2008]生日聚会(DP)的更多相关文章
- BZOJ1037 [ZJOI2008]生日聚会Party 【DP】
1037: [ZJOI2008]生日聚会Party Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2800 Solved: 1654 [Submi ...
- bzoj千题计划125:bzoj1037: [ZJOI2008]生日聚会Party
http://www.lydsy.com/JudgeOnline/problem.php?id=1037 一个区间是否满足 任意连续的一段,男孩与女孩的数目之差不超过k, 取决于男孩与女孩数目之差的最 ...
- BZOJ1037:[ZJOI2008]生日聚会Party(DP)
Description 今天是hidadz小朋友的生日,她邀请了许多朋友来参加她的生日party.hidadz带着朋友们来到花园中,打算坐成一排玩游戏. 为了游戏不至于无聊,就座的方案应满足如下条件: ...
- bzoj1037 [ZJOI2008]生日聚会
Description 今天是hidadz小朋友的生日,她邀请了许多朋友来参加她的生日party. hidadz带着朋友们来到花园中,打算坐成一排玩游戏.为了游戏不至于无聊,就座的方案应满足如下条件: ...
- BZOJ1037: [ZJOI2008]生日聚会Party
DP… /************************************************************** Problem: 1037 User: zhuohan123 L ...
- BZOJ1037 ZJOI2008生日聚会(动态规划)
设f[i][j][x][y]为安排了i个男孩j个女孩,后缀最大男孩-女孩数为x,最大女孩-男孩数为y的方案数.转移显然. #include<iostream> #include<cs ...
- [ZJOI2008] 生日聚会 - dp
共有\(n\)个男孩与\(m\)个女孩打算坐成一排.对于任意连续的一段,男孩与女孩的数目之差不超过 \(k\).求方案数. \(n,m \leq 150, k \leq 20\) Solution 设 ...
- 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] ...
随机推荐
- #include stdio.h(4)
#include <stdio.h> int main() { //****************1.数组*************** //什么是数组:专门用来存放数据的 /* 格式 ...
- npm下载某个版本
如果我想要引入的是Jquery的1.7.2版本,则输入npm intall jquery@1.7.2,那么npm包管理器就会帮助你下载jquery1.7.2的版本到你当前操作目录下的node_modu ...
- Row_number() OVER(PARTITION BY xxx ORDER BY XXX)分组排序
--//创建一个信息表 ,) ,),st_name ),class ),score ,)) --//插入测试数据============start=================== insert ...
- AIR Native Extension for iOS 接入第三方sdk 如何实现 AppDelegate 生命周期
作者:Panda Fang 出处:http://www.cnblogs.com/lonkiss/p/6492385.html 原创文章,转载请注明作者和出处,未经允许不可用于商业营利活动 去年到今年做 ...
- Ubuntu 14.04 软件源服务器集合
http://wiki.ubuntu.com.cn/Template:14.04source 服务器列表 可将 http://cn.archive.ubuntu.com/ubuntu/ 替换为下列任意 ...
- mysqli:查询数据库中,是否存在数据的三种校验方法
在我们编辑用户登录功能的时候,常常需要对用户输入的信息进行校验,校验的方法就是通过SQL语句进行一个比对,那么我们就需要用到以下三种中的一种进行校验啦 1.使用mysqli_num_rows()校验 ...
- python 笔记1:官网下载及安装python;eclipse中安装配置pydev
1 下载安装python. 官网:https://www.python.org/downloads/ 根据自己的操作系统选择需要的版本下载并安装. 我的电脑操作系统windows xp的,只 ...
- VPS 运行 Node.js 的一些经验
VPS 系统选择 各系统安装难易对比 Ubuntu.Debian 较为简单,CentOS 稍麻烦,32位系统比64位更节省内存 DigitalOcean 甚至推出了 Ubuntu + Node.js ...
- 2017.9.18 include指令和include动作有什么区别?
问题:include指令和include动作有什么区别? 答:include指令合并静态文档或Jsp页面中的内容,可以用于包括动态生成的输出结果,因此可以包含一个Servlet include指令在编 ...
- 卷积神经网络CNN理解
自今年七月份以来,一直在实验室负责卷积神经网络(Convolutional Neural Network,CNN),期间配置和使用过theano和cuda-convnet.cuda-convnet2. ...