HDU4055 - number string(DP)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4055

思路:dp[i][j]表示处理前i个字符以j结尾可能的序列数。
当a[i]=='I'时,dp[i][j]=sum(dp[i-1][k]),(1<=k<=j-1), 可进一步化为dp[i][j-1]+dp[i-1][j-1]。
当a[i]=='D'时,dp[i][j]=sum(dp[i-1][k]),(j<=k<=i-1),可进一步化为dp[i][j+1]+dp[i-1][j]。
当a[i]=='?'时,dp[i][j]=sum(dp[i-1][k]),(1<=k<=i-1)。

#include<cstdio>
#include<cstring>
using namespace std;
const int N = 1e3 + 5;
const int mod = 1e9 + 7;
char a[N];
int dp[N][N];
int main()
{while(~scanf("%s",a+2)){memset(dp,0,sizeof(dp));int len = strlen(a+2) + 1;dp[1][1] = 1;for(int i = 2 ;i <= len ;i++){if(a[i] == 'I'){for(int j = 2 ;j <= i ;j++)dp[i][j] = (dp[i][j-1] + dp[i-1][j-1]) % mod;}else if(a[i] == 'D'){for(int j = i-1 ;j >= 1 ;j--)dp[i][j] = (dp[i][j+1] + dp[i-1][j]) % mod;}else{int sum = 0;for(int j = 1 ;j <= i-1 ;j++)sum = (sum + dp[i-1][j]) % mod;for(int j = 1 ;j <= i ;j++)dp[i][j] = sum;}}int ans = 0;for(int i = 1 ;i <= len ;i++)ans = (ans + dp[len][i]) % mod;printf("%d\n",ans);}return 0;
}

 



 

转载于:https://www.cnblogs.com/westwind1005/p/5975202.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271008.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是字面量

1:字面量 字面量就是比如说int a 1; 这个1就是字面量 &#xff0c;a是变量名 又比如String b "abc";这个abc就是字面量&#xff0c;b是变量名

oracle ebs 基于host(主机文件)并发程序的开发,Oracle EBS 基于Host(主机文件)并发程序的开发...

您可以将程序命名为 .prog,其中 是在“可执行并发程序”窗口的“执行文件”字段中输入的值。然后,使用执行文件名(无扩展名)创建与 fndcpesr 的符号链接,其中 fndcpesr 位于 $FND_TOP/$APPLBIN 目录下。Oracle EBS 基于Host(主机文件)并发程序的开发主语言并发程序您可以将程序…

摩托罗拉v8对讲机驱动软件_摩托罗拉数字机如何设置“个性”提示音

诺基亚手机的开机铃声是很多70后 80后的回忆&#xff0c;给心爱的“摩机”P8668i配上一段开机铃声“Hello MOTO”,既俏皮又炫酷。如果设置个性提示音&#xff0c;今天就给大家简单示范下。一、第一种语音提示是“文本转语音”以P8668i对讲机为例&#xff0c;CPS软件里面可以选择…

电脑快捷键:关于shift键的11个实用技巧

今天要和大家一起聊一下我们电脑键盘上那些关于shift键的事儿。提起电脑键盘上的shift键大家一定很熟悉&#xff0c;因为在平常使用电脑的时候呢会经常的用到它。 可是大家知道吗&#xff1f;shift按键除了我们平常使用的那些功能和作用以外&#xff0c;它还有11个你有可能不知…

洛谷P1061 Jam的计数法

题目描述 Jam是个喜欢标新立异的科学怪人。他不使用阿拉伯数字计数&#xff0c;而是使用小写英文字母计数&#xff0c;他觉得这样做&#xff0c;会使世界更加丰富多彩。在他的计数法中&#xff0c;每个数字的位数都是相同的&#xff08;使用相同个数的字母&#xff09;&#xf…

java中final使用

final关键字可以用来修饰引用、方法和类。 1、用来修饰一个引用 如果引用为基本数据类型&#xff0c;则该引用为常量&#xff0c;该值无法修改&#xff1b; 如果引用为引用数据类型&#xff0c;比如对象、数组&#xff0c;则该对象、数组本身可以修改&#xff0c;但指向该对象或…

oracle未过账是什么意思,EBS R12 GL过帐问题(急)

凭证在过账时出现以下错误日志&#xff0c;麻烦帮忙分析下是什么原因。谢谢&#xff01;---------------------------------------------------------------------------总帐管理系统: Version : 12.0.0Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.GLP…

曲线的生成算法实现_PCGPlanet1-地形生成算法简介

比较常用的地形生成算法有三种&#xff1a;四叉树算法,GeoMipmap算法&#xff0c;移动立方体算法目前市面游戏采用的方案基本都是以这三种算法为基础实现的&#xff0c;下面依次进行介绍四叉树算法很经典的算法&#xff0c;在没有GPU的时代就已经出现了&#xff0c;原始算法是纯…

数据库安全:数据库加密技术介绍

数据库加密是计算机系统对信息进行保护的一种最可靠的方法。它利用密码技术对信息进行加密&#xff0c;实现信息屏蔽&#xff0c;从而起到保护信息安全的作用。对数据库中的数据进行加密&#xff0c;可以防止数据在存储和传输过程中失密。常用的数据加密技术按照作用不同分为数…

poj 1201 差分约束

转自&#xff1a;優YoU http://user.qzone.qq.com/289065406/blog/1307063918 大致题意&#xff1a; 给出数轴上的n个区间[ai&#xff0c;bi]&#xff0c;每个区间都是连续的int区间。 现在要在数轴上任意取一堆元素&#xff0c;构成一个元素集合V 要求每个区间[ai&#xff0c…

oracle11 删除表空间,oracle11g启动停止服务,修改字符集,导入导出,创建删除表空间,卸载oracle等...

oracle11g启动停止服务,修改字符集,导入导出,创建删除表空间,卸载oracle等1. 【启动停止服务】//启动停止监听 www.2cto.comlsnrctl start;lsnrctl stop;//启动停止服务sqlplus orcl as sysdba; //登录>shutdown immediate;>STARTUP;或者ps -ef|grep ora_dbw0_$O…

Java中包装类型和基本类型的使用场景(阿里开发规范)

基本数据类型和包装数据类型推荐使用场景 所有的 POJO 类属性必须使用包装数据类型RPC 方法的返回值和参数必须使用包装数据类型所有的局部变量推荐使用基本数据类型

数据库:整理四个实用的SQLServer脚本函数

今天给大家分享小编自己日常工作积累的四个SQLServer脚本函数 目录 1、字符串指定字符分割为list 2、数字去掉末尾的0 3、创建表、视图、函数、存储过程判断是否存在 4、金额转换为大写 1、字符串指定字符分割为list 功能&#xff1a;主要适用于数据库字段存储字段用逗号等分隔…

python排名分析_用Python分析了近几年胡润排行榜,我酸了……

10 月 20 日&#xff0c;胡润研究院发布《2020 胡润百富榜》&#xff0c;也就是富富富豪排行榜杭州的马云毫无悬念的再次摘下中国首富桂冠&#xff0c;深圳的马化腾位列第二榜单被我翻烂了&#xff0c;还是没有找到我的名字&#xff0c;难道是被遗漏了吗&#xff1f;&#xff1…

sublime代码片段

创建方法&#xff1a;Tools > New Snippet 这时你会看到如下示例代码&#xff1a; <snippet><content><![CDATA[Hello, ${1:this} is a ${2:snippet}.]]></content><!-- Optional: Set a tabTrigger to define how to trigger the snippet -->…

定义DO/DTO/VO等POJO类时,不要设定任何属性默认值

定义DO/DTO/VO等POJO类时&#xff0c;不要设定任何属性默认值

php事务 面向对象,关于PHP面向对象的事务脚本模式

下面为大家带来一篇PHP面向对象之事务脚本模式(详解)。内容挺不错的&#xff0c;现在就分享给大家&#xff0c;也给大家做个参考。如下所示&#xff1a;/*事务脚本模式: 类似于thinkphp中的model层&#xff0c;或者说就是操作数据库的类。个人觉得实践中使用起来还是挺简单方便…

分布式数据库相关概念介绍

1、分布式数据库的概念分布式数据库系统&#xff08;Distributed Database System&#xff0c;DDBS&#xff09;是针对面向地理上分散&#xff0c;而管理上有需要不同程度集中管理的需求而提出的一种数据库管理信息系统。2、分布式数据库系统组成LDBMS(Local DBMS)&#xff1a;…

社会管理网格化 源码_为什么说网格化管理是基层社会治理的有效武器

在社会治安综合治理中网格化管理是当前各地加强基层社会治理的一种有效“武器”。为什么要说网格化管理是基层社会治理的有效“武器”&#xff1f;这就要为大家讲讲以下几点了&#xff0c;好让大家清楚的明白为什么。网格化管理适应当代社会的基本特性。网格化服务管理是当前城…

【Time系列一】datetime的妙用

今天在弄个自动关机小脚本的时候&#xff0c;遇到了时间转换的问题&#xff0c;也难怪&#xff0c;以前没学过&#xff0c; 不能怪我不会哦! 首先&#xff0c;先学会打印出当前时间的几种方式 参考开源社区: http://my.oschina.net/u/1032854/blog/198179#OSC_h1_3 菜鸟编程:…