牛客多校第一场——E-ABBA
题目:
Bobo has a string of length 2(n + m) which consists of characters A
and B
. The string also has a fascinating property: it can be decomposed into (n + m) subsequences of length 2, and among the (n + m) subsequences n of them are AB
while other m of them are BA
.
Given n and m, find the number of possible strings modulo (109+7)(10^9+7)(109+7).
输入描述
The input consists of several test cases and is terminated by end-of-file.
Each test case contains two integers n and m.
- 0≤n,m≤1030 \leq n, m \leq 10^30≤n,m≤103
- There are at most 2019 test cases, and at most 20 of them has max{n,m}>50\max{n, m} > 50max{n,m}>50.
输出描述
For each test case, print an integer which denotes the result.
样例
输入;
1 2
1000 1000
0 0
输出:
13
436240410
1
大致题意:
有一个人有一种字符串(长度为2*(n+m)),这个字符串中含有n个AB和m个BA,AB和BA不连续也是可以的,只要求相对位置满足要求就行,现在问你和那个人一样的满足这种要求的字符串到底有多少个。
思路
一种贪心的思路,然后dp实现。
dp[i][j]表示用了i个A和j个B的方案数。
贪心和dp:
要是A的话,肯定是要先要满足n个AB,然后假如现在已经有了j个B,那么最多只能有j+n个A,
所以当i-n<j的时候
dp[i+1][j]+=dp[i][j];
同理
B的情况也是一样,肯定要先满足m个BA,然后假如现在有i个A,那么最多现在只能有i+m个B;
所以当j-n<m的时候
dp[i][j+1]+=dp[i][j];
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
long long dp[2005][2005];
int n,m;
int main()
{while(~scanf("%d%d",&n,&m)){int sum=n+m;dp[0][0]=1;for(int i=0;i<=sum;i++){for(int j=0;j<=sum;j++){if(i-n<j){dp[i+1][j]+=dp[i][j];dp[i+1][j]%=1000000007;}if(j-m<i){dp[i][j+1]+=dp[i][j];dp[i][j+1]%=1000000007;}}}printf("%lld\n",dp[sum][sum]);for(int i=0;i<=sum+1;i++){for(int j=0;j<=sum+1;j++){dp[i][j]=0;}}}return 0;
}
牛客多校第一场——E-ABBA相关推荐
- 2019 牛客多校第一场 E ABBA
题目链接:https://ac.nowcoder.com/acm/contest/881/E 题目大意 问有多少个由 (n + m) 个 'A' 和 (n + m) 个 'B',组成的字符串能被分割成 ...
- python字符串去重及排序 牛客_2018牛客多校第一场 D.Two Graphs
题意: n个点,m1条边的图E1,n个点,m2条边的图E2.求图E2有多少子图跟图E1同构. 题解: 用STL的全排列函数next_permutation()枚举映射.对于每一种映射枚举每一条边判断合 ...
- 2019牛客多校第一场
2019牛客多校第一场 题号 题目 知识点 A Monotonic Matrix B Symmetric Matrix C Fluorescent 2 D Two Graphs E Removal F ...
- 2020 牛客多校第一场
2020 牛客多校第一场 A. B-Suffix Array 后缀数组的思想:倍增+桶排序的方式找出一串连续序列后缀的大小.虽说正常使用的时候都是字典序,但是只要修改排序方式,也能够达到一个类似的&q ...
- 【多校训练】2021牛客多校第一场
[前言] 组队训练的第一场比赛,感觉这场出题十分阴间,后面几个乱搞题根本不会.jpg 赛时只过了5题,rk123,学校参加5/8. A. Alice and Bob [题意] 两人博弈,每次一个人从一 ...
- 2018牛客多校第一场 Monotonic Matrix (LGV引理)
链接:https://www.nowcoder.com/acm/contest/139/A 来源:牛客网 题目描述 Count the number of n x m matrices A satis ...
- [2020牛客多校第一场]Coda的题解集
被暴打了. 会先写比赛中过题数100+的题目,其他的以后再补. 施工中,未完待续- F Infinite String Comparision 一开始想到的是对比到lcm(|a|,|b|),意料之中T ...
- 2019年牛客多校第一场B题 Integration 定积分 裂项相消
题目链接: https://ac.nowcoder.com/acm/contest/881/B 题解: 转发一个大佬的博客,裂项相消,很容易看懂. https://blog.csdn.net/dill ...
- FFT ---- 2021牛客多校第一场 H Hash Function
题目链接 题目大意: 解题思路: 首先我们知道任意两个数%seed\%seed%seed都不相同→\rightarrow→(aj−ai)%seed≠0(∀ai≤aj)(a_j-a_i)\%seed\n ...
- 线段树 ---- 2021牛客多校第一场 J Journey among Railway Stations [线段树维护区间可行性判断]
题目链接 题目大意: 一段路上有 NNN 个点,每个点有一个合法时间段[ui,vi][u_i,v_i][ui,vi],相邻两个点有一个长度wiw_iwi.有qqq次询问,每次询问,在 [ui,v ...
最新文章
- 2017海克斯康拉斯维加斯美国大会 精彩即将开始
- 实例分割综述(单阶段/两阶段/实时分割算法汇总)
- 决策树-随机森林-两种Feature importances排序方法
- 搜索引擎技术——全文检索基础原理
- roadflow2.1版oracle,RoadFlowVue3.0.2更新日志
- Android 机型适配之gradient默认渐变方向
- kingwell Calendar V1.0 日历时间组件
- jdbctemplate mysql 配置_Spring JDBCTemplate配置使用
- 【数据结构】(面试题)使用两个栈实现一个队列(详细介绍)
- fgets和fgetl有什么区别
- flex布局(弹性布局)
- 实战ItemTouchHelper仿网易新闻客户端自定义栏目页面
- android串口开发!一年后斩获腾讯T3,附面试题答案
- word公式和图片显示不完全
- Codeforces 718E Matvey's Birthday bfs
- 安装完linux后要做的几件事。
- element-ui 中的el-table表格默认的“暂无数据”修改
- 昆仑通态组态软件中如何配置modbus数据转发
- 华天PDM打通济南重工信息化的“任督二脉”,新动能推动新发展
- 一招去除迅雷客户端首页视频 斩掉流氓特性 回归下载本质
热门文章
- Neural Collaborative Filtering(NCF) 代码实战(Keras)
- NVIDIA DLI——深度学习基础-理论与实践入门
- 由浅入深:Python 中如何实现自动导入缺失的库?
- 对 Viper RGB 驱动多个缓冲区溢出漏洞的分析
- [业内传闻]今天,7月25日是全世界系统网络管理员的节日
- html+css+js制作美团界面
- 【Proteus仿真】步进电机转速数码管显示
- python实现KDJ指标模型 量化策略 python 策略开发
- 宝塔 mysql备份 不全_宝塔数据库无法备份,备份完数据总是20b的问题解决。
- 《那些年啊,那些事:一个程序员的奋斗史》