[ZJOI2008]生日聚会
dp,f[i][j][k][l]表示前i个人,j个男生,后缀中男生比女生最多多k人,最少少l人的方案数。
/*** Problem:Party* Author:Shun Yao* Time:2013.5.30* Result:Accepted* Memo:DP*/#include <cstring>
#include <cstdlib>
#include <cstdio>long min(long x, long y) {return x < y ? x : y;
}
long max(long x, long y) {return x > y ? x : y;
}const long MOD = 12345678;long n, m, lim, N, f[20043891], ans;int main() {freopen("party.in", "r", stdin);freopen("party.out", "w", stdout);scanf("%ld%ld%ld", &n, &m, &lim);N = n + m;memset(f, 0, sizeof f);
#define F(a, b, c, d) f[(((a) * (n + 1) +(b)) * (lim + 1) + (c)) * (lim + 1) + (d)]long i, j, k, l, J, K, L;F(0, 0, 0, 0) = 1;for (i = 0; i < N; ++i) {for (J = min(i, n), j = 0; j <= J; ++j)for (K = min(j, lim), k = 0; k <= K; ++k)for (L = min(i - j, lim), l = 0; l <= L; ++l) {if (k < lim && j < n) {long &a = F(i + 1, j + 1, k + 1, max(l - 1, 0));a = (a + F(i, j, k, l)) % MOD;}if (l < lim && i - j < m) {long &b = F(i + 1, j, max(k - 1, 0), l + 1);b = (b + F(i, j, k, l)) % MOD;}}}ans = 0;for (k = 0; k <= lim; ++k)for (l = 0; l <= lim; ++l)ans = (ans + F(N, n, k, l)) % MOD;printf("%ld", ans);fclose(stdin);fclose(stdout);return 0;
}
转载于:https://www.cnblogs.com/hsuppr/archive/2013/06/03/3115421.html
[ZJOI2008]生日聚会相关推荐
- bzoj 1037: [ZJOI2008]生日聚会Party
1037: [ZJOI2008]生日聚会Party Description 今天是hidadz小朋友的生日,她邀请了许多朋友来参加她的生日party. hidadz带着朋友们来到花园中,打算 坐成一排 ...
- [ZJOI2008]生日聚会Party
1037: [ZJOI2008]生日聚会Party Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2907 Solved: 1727 [Submi ...
- bzoj1037[ZJOI2008]生日聚会Party dp
[ZJOI2008]生日聚会Party Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2832 Solved: 1674 [Submit][Sta ...
- P2592 [ZJOI2008]生日聚会(dp)
P2592 [ZJOI2008]生日聚会(dp) dp,关键是如何表示男女差的状态. 因此设dp(i,j,k,l)dp(i,j,k,l)dp(i,j,k,l)表示用iii个男生,jjj个女生,男生与女 ...
- 1037: [ZJOI2008]生日聚会Party
1037: [ZJOI2008]生日聚会Party Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2102 Solved: 1246 [ Su ...
- P2592 [ZJOI2008]生日聚会
题目描述 今天是hidadz小朋友的生日,她邀请了许多朋友来参加她的生日party. hidadz带着朋友们来到花园中,打算坐成一排玩游戏.为了游戏不至于无聊,就座的方案应满足如下条件: 对于任意连续 ...
- bzoj1037 [ZJOI2008]生日聚会Party 插数dp
这个题首先要认清楚任意一个区间差不超过k个怎么理解 看到k一般想的是装压,但如果是状压的思路的话,就需要前k个满足某种条件,于是有可能会猜到前k个满足非全0或1,但这是显然错误的 由于仅仅考虑前k个并 ...
- ZJOI2008 生日聚会
传送门 这道题很明显是DP.不过一开始我错误的以为是区间DP--但是并不是这样.因为区间DP它需要满足区间的情况是确定的,而这道题并不是确定的情况,所以不是区间DP. 重新考虑,设dp[i][j][p ...
- BZOJ 1037 [ZJOI2008]生日聚会Party(单调DP)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1037 [题目大意] 现在有n个男生,m个女生排成一行,要求不存在一个区间男女之差大于k ...
- BZOJ1037洛谷P2592 [ZJOI2008]生日聚会
四重循环大模拟 我们考虑f[i][j][k][e]表示前i个人,有j个男生,女生个数即为i-j,任意一段中男生最多比女生多k个,女生比男生最多多e个, 那么当前状态可以转移到 1.在j<n的情况 ...
最新文章
- 优雅的使用 ThreadLocal
- 张亚勤:新范式、新架构和新模态突破传统算力,推动物理世界走向数字化
- Golang面向过程编程-函数
- 网站图片优化需要注意哪些方面?
- 【昇腾学院】昇腾AI处理器软件栈--框架管理器(Framework)离线模型生成
- Flume案例Ganglia监控
- Java分布式锁看这篇就够了,java基础面试笔试题
- 为什么c语言2的n次方减一,计算2的N次方........有什么错吗?
- Python学习之路-基础知识1
- 后PC时代的桌面虚拟化解决方案——VMware View 5
- Delphi2007企业版破解
- Centos 远程桌面管理工具
- 龙之谷手游微信连接授权服务器失败,龙之谷手游ios微信授权失败怎么办_龙之谷手游ios微信授权失败解决办法-66街机网...
- 【平面几何】点线距离与位置关系
- arcgis双标准纬线等角圆锥投影_常用地图投影之圆锥投影
- C语言进阶:程序中的三国天下 考研数据结构
- ##模拟图灵机 XN*2的运算
- Flash按键响应-键码值表
- 【Leetcode】1137. 第 N 个泰波那契数
- html页面自适应是什么意思,什么是自适应网页设计