序列dp

先开始想了一个类似区间dp的东西...少了一维 然后发现似乎不太对,因为女生的最大差和男生的最大差并不相等

dp[i][j][x][y]表示当前有i个人,j个男生,男生和女生的后缀最大差是x,女生和男生最大差是y,x,y>=0,转移详见代码,注意x-1<0时也可以转移,只不过要和x-1取max,因为负数没有意义,我们可以一个不选,这样最大差永远是>=0的。

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
const int N = , mod = ;
int n, m, k, ans;
int dp[N << ][N][][];
void up(int &x, int d) { x = (x + d) % mod; }
int main()
{
dp[][][][] = ;
scanf("%d%d%d", &n, &m, &k);
for(int i = ; i < n + m; ++i)
for(int j = ; j <= i; ++j)
for(int x = ; x <= k; ++x)
for(int y = ; y <= k; ++y)
{
if(x + <= k) up(dp[i + ][j + ][x + ][max(y - , )], dp[i][j][x][y]);
if(y + <= k) up(dp[i + ][j][max(x - , )][y + ], dp[i][j][x][y]);
}
for(int i = ; i <= k; ++i)
for(int j = ; j <= k; ++j) up(ans, dp[n + m][n][i][j]);
printf("%d\n", ans);
return ;
}

500T

最新文章

  1. JavaScript中的面向对象
  2. c#中的var优缺点和适用场景
  3. API 进程、线程函数
  4. R语言AMORE包实现BP神经网络——German数据集
  5. callback调用测试
  6. display_errors &amp; error_reporting(php调试安全)
  7. RMAN-06023: no backup or copy of datafile 6 found to restore
  8. SubLime BracketHighlighter 配置
  9. 操作数组的工具类Arrays
  10. 数据库服务器构建和部署列表(For SQL Server 2012)
  11. syntax error, unexpected '['
  12. 【翻译】Ext JS 5.0.1 中的新功能
  13. PHP将汉字转为拼音
  14. VR外包商:最新WEARVR游戏下载
  15. Innobackupex(xtrabackup)物理备份
  16. Canvas锯齿问题
  17. JS判断元素是否在数组内
  18. Tomcat启动项目时内存溢出问题如何解决
  19. MYSQL 添加外键报错
  20. Cocos2d-x 3.0游戏开发之虚拟机IOS环境:匹配才是好,莫要随便升级软件

热门文章

  1. MySQL 索引及其用法
  2. 如何稳定地使用 Google 搜索https://encrypted.google.com/
  3. ios Crash Log 分析汇总
  4. ios实现下载图片的裁减和显示
  5. android 弹出菜单
  6. pycharm整体缩进的快捷键
  7. uva 11488 - Hyper Prefix Sets(字典树)
  8. vc常用类总结(转载)
  9. android-problem——remount of /system failed: Read-only file system
  10. ngnix