[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] ...
随机推荐
- 从零开始的全栈工程师——js篇2.21(事件对象 arguments 阻止事件默认行为兼容 事件委托 事件源对象)
一.事件对象 1.常用的事件2.每个元素身上的事件都是天生存在的 不需要我们去定义 只需要我们给这个事件绑定一个方法 当事件触发的时候就会执行这个方法 3.事件绑定的写法 ①div.onclick=f ...
- Android NDK 入门与实践
NDK 是什么 NDK 全称 Native Development Kit,可以让您在 Android 应用中调用 C 或 C++ 代码的工具. NDK 好处 1.NDK 可以生成 .so 文件, 方 ...
- eclipse svn 环境搭建
subversion 1.8.14(r1692801) eclipse 安装插件 1.10.x版本
- Quick How-To deny/allow IP using iptables
How to block an IP using iptables? iptables -A INPUT -s xx.xx.xx.xx -j DROP How to block an IP for a ...
- Java 线程生命周期
|作者:RexFang |出处:http://www.cnblogs.com/rexfang/ |关于作者:Java 程序员一枚 |版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此 ...
- redis笔记(三)
redis配置文件 配置文件对单位大小写不敏感 tcp-backlog 511 高并发环境连接数 tcp-keepalive 单位为秒 0 表示不会进行keepalive检测,,,建议设置 ...
- IOS 自定义Operation(下载功能)
一个下载操作就交给一个HMDownloadOperation对象 HMDownloadOperation.h / .m @class HMDownloadOperation; @protocol HM ...
- hdu-1247 Hat’s Words---字典树模板
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1247 题目大意: 给出一些单词,以EOF结束,看其中哪一个单词可以由其他两个单词组成,将其输出 解题 ...
- Kruskal算法求最小生成树
Kruskal算法是根据权来筛选节点,也是采用贪心算法. /// Kruskal ///初始化每个节点为独立的点,他的祖先为自己本身 void made(int n) { ; i<=n; i++ ...
- mysql [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GRO
[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated c ...