bzoj1037生日聚会——DP
2024-09-05 22:04:35
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1037
记录每个状态时前面所有连续子序列中男生与女生差距的最大值,根据那个转移即可。
代码如下:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,m,k,f[][][][],mod=,ans;
int main()
{
scanf("%d%d%d",&n,&m,&k);
f[][][][]=;
for(int i=;i<=n;i++)//女孩
for(int j=;j<=m;j++)//男孩
for(int l=;l<=min(i,k);l++)//女孩比男孩多
for(int p=;p<=min(j,k);p++)//男孩比女孩多
{
if(l<k&&i<n)
(f[i+][j][l+][max(,p-)]+=f[i][j][l][p])%=mod;
if(p<k&&j<m)
(f[i][j+][max(,l-)][p+]+=f[i][j][l][p])%=mod;
}
for(int l=;l<=k;l++)
for(int p=;p<=k;p++)
(ans+=f[n][m][l][p])%=mod;
printf("%d",ans);
return ;
}
最新文章
- js学习笔记---事件代理
- HTML插入地图的方法
- ubuntu安装WPS
- Android EventBus源码解析 带你深入理解EventBus
- android获取手机录
- Angular之【form提交问题】
- AHCI vs NVMe
- VS2010打不开VS2012 .NET MVC 工程,及打开后部分模块加载不正确的解决办法
- Windows7 IIS7 无法启动计算机上的服务W3SVC如何修复
- 后缀自动机(SAM) :SPOJ LCS - Longest Common Substring
- Action class [userAction] not found
- 学习NodeJS第一天:node.js介绍
- NSXMLParser自定义的一个xml解析工具
- GCC编译选项 -OX[转]
- java设计模式---职责链模式
- leetcode1:两数之和
- 魔幻般冒泡背景的CSS3按钮动画
- Emmet 记录
- Android Studio 使用过程遇到的坑
- git push 使用