显然DP。

将题目转化下: 求由n个0、m个1组成,且满足任意子串0的数量和1的数量差绝对值不超过k的01串数量。n, m≤150,k≤20。

直接做没什么思路,,那我们尽量利用题目的时间和空间限制,以达到清晰、方便的方程转移。


由于题目n、m很小,可以考虑O(nm)带k的几次方的算法。

设f[a][b][l][h]表示当前序列中放了a个1,b个0,所有后缀中,男生减女生的差最大为l,女生减男生的差最大为h的方案数。

那么状态转移显然->  f[a][b][l][h] 可以向 f[a+1][b][l+1][max(h-1),0] 或 f[a][b+1][max(l-1)][h+1] 转移;最后答案统计f[n][m][l][h](枚举l,h)。

Code:

#include<bits/stdc++.h>
using namespace std;

;
;

][];

int main(){
    int n,m,k;
    cin>>n>>m>>k;
    f[][][][] = ;
    ;a<=n;++a)
    ;b<=m;++b)
    ;l<=k;++l)
    ;h<=k;++h)
    if(f[a][b][l][h]){
        int cnt = f[a][b][l][h];
        f[a+][b][l+][max(h-,)] += cnt;f[a+][b][l+][max(h-,)]%=mod;
        f[a][b+][max(l-,)][h+] += cnt;f[a][b+][max(l-,)][h+]%=mod;
    }
    ;
    ;i<=k;++i)
        ;j<=k;++j)
        ans = (ans + f[n][m][i][j])%mod;
    cout<<ans<<endl;
}

最新文章

  1. dp、px、dpi、ppi
  2. time元素
  3. [CareerCup] 16.5 Semphore 信号旗
  4. 如何让linux定时任务crontab按秒执行
  5. 树莓派配置静态ip
  6. 算法分析 Analysis of Algorithms -------GeekforGeeker 翻译
  7. 如何用ABBYY把PDF如何转换成HTML
  8. 敏捷开发的价值观(转自MBAlib)
  9. 动画讲解 Eclipse 常用快捷键
  10. butterknife简化android开发
  11. java笔记之静态修饰附和单例设计模式
  12. jQuery EasyUI 1.3.4 离线API、Demo
  13. 计蒜客的一道题dfs
  14. jquery-防多店铺购物车结算全选,单选,及删除,价格计算
  15. C语言进阶--Day2
  16. Coding配合git使用时遇到的问题
  17. 2-SAT问题的小结
  18. 鸟哥的 Linux 私房菜Shell Scripts篇(二)
  19. Spring学习笔记三:Bean管理
  20. php.ini 中文版

热门文章

  1. [转]UE的职责
  2. 【Eclipse常见错误】-Cannot return from outside a function or method
  3. Eric Linux - 1 Basic concepts of linux
  4. Android自动化测试探索(三)Android SDK tools安装、aapt配置以及使用aapt获取apk包名
  5. ABP开发框架前后端开发系列---(9)ABP框架的权限控制管理
  6. Tido 习题-二叉树-树状数组实现
  7. 高并发 Nginx+Lua OpenResty系列(4)——Lua 模块开发
  8. linux命令---grep命令使用
  9. Oracle Awr报告_生成
  10. Web自动化测试 二 ----- HTML