题目描述

序列长 2×(n+m)2\times (n+m)2×(n+m),包含 n+mn+mn+m 个 AAA 和 n+mn+mn+m 个 BBB.

可以将这个序列划分成 n+mn+mn+m 个子序列,nnn 个 ABABAB,mmm 个 BABABA.

例:ABABABABABAB 可划分为 111 个 AB (i={0,3})AB\ (i={0,3})AB (i={0,3}) 与 111 个 BA (i={1,2})BA\ (i={1,2})BA (i={1,2}).

求这样的序列的个数.
输入格式

包含多组数据.

对每组数据:一行, nnn, mmm.
输出格式

对每组数据,输出一行,一个整数,答案 mod 1000000007mod\ 1000000007mod 1000000007
样例
样例输入

1 2
1000 1000
0 0

样例输出

13
436240410
1

数据范围与提示

对 50%50%50% 的数据,n,m≤10n,m\le 10n,m≤10.

对 100%100%100% 的数据,n,m≤103n,m\le 10^3n,m≤103,数据组数 ≤20\le 20≤20.
来源

2019-Nowcoder-multi round1
题解:
首先,贪心来说,前n个A一定对后n个B,同理。
所以我们可以计f[i][j],表示前i个数中有j个A时,只要后面的数变化可以构成有效数列的方案数。
转移方程为

f[i][j]=f[i-1][j]+f[i-1][j-1];

又因为贪心,所以某个状态是否合法需满足
①扣去n个A,剩下的A可以与前面的B相配。
②扣去m个B,剩下的B可以与前面的A相配。

#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<cstdio>
#define N 2005
using namespace std;
const long long mod=1000000007;
long long f[N<<1][N],n,m;
int main()
{while(scanf("%lld%lld",&n,&m)!=EOF){memset(f,0,sizeof(f));f[0][0]=1;for(int i=1;i<=2*(n+m);i++){for(int j=0;j<=min((long long)i,n+m);j++){if(j-n>i-j||i-j-m>j)continue;f[i][j]=(f[i-1][j]+f[i-1][j-1])%mod;}}printf("%lld\n",f[2*(n+m)][n+m]);
}return 0;
}

#4051. ABBA相关推荐

  1. 回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)

    栈与队列习题:回文是指正读反读均相同的字符序列,如"abba"和"abdba"均是回文,但"good"不是回文.试写一个算法判定给定的字符向 ...

  2. 回文是指正读反读均相同的字符序列;如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符序列是否是回文。(提示:将一半字符入栈)

    文章目录 1.题目描述 2.算法实现 1.题目描述 回文是指正读反读均相同的字符序列:如"abba"和"abdba"均是回文,但"good" ...

  3. 回文是指正读反读均相同的字符序列,如“abba“和“abdba“均是回文,但“good“不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)

    题目要求:回文是指正读反读均相同的字符序列,如"abba"和"abdba"均是回文,但"good"不是回文.试写一个算法判定给定的字符向量是 ...

  4. 回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。编写一个程序,使用栈判定给定的字符序列是否为回文。

    内容: 回文是指正读反读均相同的字符序列,如"abba"和"abdba"均是回文,但"good"不是回文.编写一个程序,使用栈判定给定的字符 ...

  5. 2022-01-05:有四种诗的韵律分别为: AABB、ABAB、ABBA、AAAA。 比如 : 1 1 3 3就属于AABB型的韵律、

    2022-01-05:有四种诗的韵律分别为: AABB.ABAB.ABBA.AAAA. 比如 : 1 1 3 3就属于AABB型的韵律.6 6 6 6就属于AAAA型的韵律等等, 一个数组arr,当然 ...

  6. 面试-字符串匹配ABBA模式

    如题,有一个字符串它的构成是词+空格的组合,如"北京 杭州 杭州 北京", 要求输入一个匹配模式(简单的以字符来写), 比如 aabb, 来判断该字符串是否符合该模式, 举个例子: ...

  7. java输出abba_面试-字符串abba匹配问题-java8解决方案

    有一个字符串它的构成是词+空格的组合,如"北京 杭州 杭州 北京", 要求输入一个匹配模式(简单的以字符来写), 比如 aabb, 来判断该字符串是否符合该模式, 举个例子: 1. ...

  8. java输出abba_java - 有限状态机搜索“ABBA” - 堆栈内存溢出

    我正在尝试编写一个while switch case kinda代码,用于对有限状态机进行建模,该有限状态机搜索As和Bs字符串以查看字符串"ABBA"是否存在. 当我输入&quo ...

  9. 瑞典乐队ABBA回归

    Been waiting for you: ABBA returns 等你:ABBA回归 The Swedish pop group disbanded almost 40 years ago but ...

最新文章

  1. 用深度神经网络搭建马赛克神器,高清无码效果感人
  2. Oracle RAC 添加删除节点
  3. Android - TextureView, SurfaceView和GLSurfaceView 以及 SurfaceTexture
  4. 趣谈网络协议笔记-二(第十一讲)
  5. Mysql中的增删改查操作
  6. 视窗宽高offset、client、scroll
  7. linux 下的shell脚本
  8. 前端学习(1269):axios的拦截器
  9. antd vue form 手动校验_参与《开课吧》vue训练营笔记(Day1)
  10. 怎样为深度学习系统选择GPU
  11. 15年3月CCF真题2-数字排序
  12. Useful webs
  13. Python 功能函数round解析
  14. python excel 颜色填充 excel样式
  15. 深入理解计算机系统——地址翻译
  16. 定义图书类Book,具有属性账号id,铭name.作者author和价格price,在创建图书对象时要求通过构造器进行创建,- -次性将四个属性全部赋值
  17. python3入门教程 pdf_Python基础教程第3版(Beginning Python From Novice to Professional 3th) pdf...
  18. Ebean报错java.lang.ClassCastException: com.project.model.xxx cannot be cast to com.project.model.xxx
  19. 在阿里云CentOS 7.4下安装WSTMart开源商城系统
  20. 【初探】java性能火焰图的生成

热门文章

  1. c语言输入年月日输出星期几,基姆拉尔森计算公式 (根据输入的年月日输出星期几)...
  2. 看尽长安十里长街不及黑伞下的呢喃——致敬将夜
  3. 299. Bulls and Cows
  4. 一次 TiDB 5.1 Write Stall 问题处理
  5. linux CPU主频设置
  6. 温度传感器DS18B20应用
  7. Hadoop集群部署后相关WEB界面打不开大概原因
  8. uniapp-高德地图Android+IOS appkey申请与使用
  9. Spring中Bean对象的存储和获取
  10. c语言函数 real,C ++中的real()函数