#4051. ABBA
题目描述
序列长 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相关推荐
- 回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)
栈与队列习题:回文是指正读反读均相同的字符序列,如"abba"和"abdba"均是回文,但"good"不是回文.试写一个算法判定给定的字符向 ...
- 回文是指正读反读均相同的字符序列;如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符序列是否是回文。(提示:将一半字符入栈)
文章目录 1.题目描述 2.算法实现 1.题目描述 回文是指正读反读均相同的字符序列:如"abba"和"abdba"均是回文,但"good" ...
- 回文是指正读反读均相同的字符序列,如“abba“和“abdba“均是回文,但“good“不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)
题目要求:回文是指正读反读均相同的字符序列,如"abba"和"abdba"均是回文,但"good"不是回文.试写一个算法判定给定的字符向量是 ...
- 回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。编写一个程序,使用栈判定给定的字符序列是否为回文。
内容: 回文是指正读反读均相同的字符序列,如"abba"和"abdba"均是回文,但"good"不是回文.编写一个程序,使用栈判定给定的字符 ...
- 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,当然 ...
- 面试-字符串匹配ABBA模式
如题,有一个字符串它的构成是词+空格的组合,如"北京 杭州 杭州 北京", 要求输入一个匹配模式(简单的以字符来写), 比如 aabb, 来判断该字符串是否符合该模式, 举个例子: ...
- java输出abba_面试-字符串abba匹配问题-java8解决方案
有一个字符串它的构成是词+空格的组合,如"北京 杭州 杭州 北京", 要求输入一个匹配模式(简单的以字符来写), 比如 aabb, 来判断该字符串是否符合该模式, 举个例子: 1. ...
- java输出abba_java - 有限状态机搜索“ABBA” - 堆栈内存溢出
我正在尝试编写一个while switch case kinda代码,用于对有限状态机进行建模,该有限状态机搜索As和Bs字符串以查看字符串"ABBA"是否存在. 当我输入&quo ...
- 瑞典乐队ABBA回归
Been waiting for you: ABBA returns 等你:ABBA回归 The Swedish pop group disbanded almost 40 years ago but ...
最新文章
- 用深度神经网络搭建马赛克神器,高清无码效果感人
- Oracle RAC 添加删除节点
- Android - TextureView, SurfaceView和GLSurfaceView 以及 SurfaceTexture
- 趣谈网络协议笔记-二(第十一讲)
- Mysql中的增删改查操作
- 视窗宽高offset、client、scroll
- linux 下的shell脚本
- 前端学习(1269):axios的拦截器
- antd vue form 手动校验_参与《开课吧》vue训练营笔记(Day1)
- 怎样为深度学习系统选择GPU
- 15年3月CCF真题2-数字排序
- Useful webs
- Python 功能函数round解析
- python excel 颜色填充 excel样式
- 深入理解计算机系统——地址翻译
- 定义图书类Book,具有属性账号id,铭name.作者author和价格price,在创建图书对象时要求通过构造器进行创建,- -次性将四个属性全部赋值
- python3入门教程 pdf_Python基础教程第3版(Beginning Python From Novice to Professional 3th) pdf...
- Ebean报错java.lang.ClassCastException: com.project.model.xxx cannot be cast to com.project.model.xxx
- 在阿里云CentOS 7.4下安装WSTMart开源商城系统
- 【初探】java性能火焰图的生成
热门文章
- c语言输入年月日输出星期几,基姆拉尔森计算公式 (根据输入的年月日输出星期几)...
- 看尽长安十里长街不及黑伞下的呢喃——致敬将夜
- 299. Bulls and Cows
- 一次 TiDB 5.1 Write Stall 问题处理
- linux CPU主频设置
- 温度传感器DS18B20应用
- Hadoop集群部署后相关WEB界面打不开大概原因
- uniapp-高德地图Android+IOS appkey申请与使用
- Spring中Bean对象的存储和获取
- c语言函数 real,C ++中的real()函数