2014-2015 ACM-ICPC, NEERC, Eastern Subregional Contest Problem G. The Debut Album
2024-08-24 08:24:25
题目来源:http://codeforces.com/group/aUVPeyEnI2/contest/229669
时间限制:1s
空间限制:64MB
题目大意:给定n,a,b的值
求一个长度为n的由1和2组成的数列,要求数列中最多有a个连续的1和b个连续的2,问由多少种不同的数列
样例:
题目解法:
动态规划,使用一个二维数组,dp[i][1]代表当前位为1的前i个数的排列个数,dp[i][2]代表当前位为2的前i个数的排列个数
代码:
#include <bits/stdc++.h>
#define maxn 51000
#define ll long long
using namespace std;
ll dp[maxn][3]={0};
const int modd=1e9+7;
int main() {
int n,a,b;
cin>>n>>a>>b;
dp[0][1]=1;
dp[0][2]=1;
for(int i=1;i<=n;i++)
{
for(int j=1;i-j>=0&&j<=a;j++)
dp[i][1]=(dp[i][1]+dp[i-j][2])%modd;
for(int j=1;i-j>=0&&j<=b;j++)
dp[i][2]=(dp[i][2]+dp[i-j][1])%modd;
//cout<<dp[i][1]<<" "<<dp[i][2]<<endl;
}
ll ans=(dp[n][1]+dp[n][2])%modd;
cout<<ans<<endl;
return 0;
}
最新文章
- 实践 Neutron FWaaS - 每天5分钟玩转 OpenStack(118)
- kylin(一): 原理架构
- 微信公众号";赞赏";功能来了 觉得不错就给作者打个赏吧
- JUC回顾之-可重入的互斥锁ReentrantLock
- 理解Node.js事件驱动编程
- pip 安装python环境及打包
- 分析Sizzle引擎 - 词法解析
- 通讯服务类API调用的代码示例合集:短信服务、手机号归属地查询、电信基站查询等
- 定位bug的姿势对吗?
- 利用FT232实现USB转串口
- Nagios 监控 Httpd 并发数插件
- 启动eclipse弹出提示Version 1.7.0_79 of the JVM is not suitable for this product. Version: 1.8 or greater is required怎样解决
- Linux下使用vim命令编辑与修改文本内容
- Node内核基本自带模块fs 文件的读写
- 通过maven中properties标签定义spring版本号
- navicat 在写存储过程的时候总是说语法错误
- SQL脚本修改表结构
- 汇编调用C程序
- Swing的GUI组件得到焦点
- 筛选git最后一次文件列表
热门文章
- 使用for in 循环数据集
- Hadoop(二)CentOS7.5搭建Hadoop2.7.6完全分布式集群
- C++ —— 非类中使用const定义常量的初始化,以及#define和typedef的区别
- Centos7最小化安装之工作站设置
- 20155210潘滢昊 2016-2017-2 《Java程序设计》第2周学习总结
- 20155222 2016-2017-2《Java程序设计》课程总结
- 基于Opencv的人脸检测及识别
- win10 64位redis的安装和测试
- CF 1093 E. Intersection of Permutations
- git clone的时候报error: RPC failed; result=18错误