博客
关于我
1093 Count PAT‘s (25分) 含DP做法
阅读量:376 次
发布时间:2019-03-05

本文共 1694 字,大约阅读时间需要 5 分钟。

1093 Count PAT’s (25分)

The string APPAPT contains two PAT’s as substrings. The first one is formed by the 2nd, the 4th, and the 6th characters, and the second one is formed by the 3rd, the 4th, and the 6th characters.

Now given any string, you are supposed to tell the number of PAT’s contained in the string.

Input Specification:

Each input file contains one test case. For each case, there is only one line giving a string of no more than 10 ^ ​5 characters containing only P, A, or T.

Output Specification:

For each test case, print in one line the number of PAT’s contained in the string. Since the result may be a huge number, you only have to output the result moded by 1000000007.

Sample Input:

APPAPT

Sample Output:

2

方法一:题目意思就是找出一个A左边的P个数*右边的T,构造两个数组分别存储在字符串i位置左边P的个数和右边T的个数,然后遍历字符串将合理位置的两个数组的数乘起来相加即可,不要忘了最后模1000000007,设字符串长度N ,整个复杂度就是遍历了三遍字符串所以还是O(N)的,不会超时。这种做法比较直接,也比较容易想到

AC代码

#include
#include
#include
using namespace std;#define N 1000000007typedef long long LL;string m;int main(){ LL res=0; cin >> m; vector
a(m.size(),0); vector
b(m.size(),0); for(int i=1;i
=0;i--) if(m[i+1]=='T') b[i]=b[i+1]+1; else b[i]=b[i+1]; for(int i=0;i

方法二:DP

#include
#include
#include
using namespace std;#define N 1000000007char s[100010],p[]=" PAT";int f[100010][4];int main(){ cin >> s+1; int n=strlen(s+1); f[0][0]=1; for(int i=1;i<=n;i++) for(int j=0;j<=3;j++) { f[i][j]=f[i-1][j]; if(s[i]==p[j]) f[i][j]=(f[i][j]+f[i-1][j-1])%N; } cout << f[n][3]; return 0;}

转载地址:http://azbwz.baihongyu.com/

你可能感兴趣的文章
mysql 让所有IP访问数据库
查看>>
MySQL 高可用性之keepalived+mysql双主
查看>>
mysql5.6.21重置数据库的root密码
查看>>
MySQL5.6忘记root密码(win平台)
查看>>
mysql5.7 for windows_MySQL 5.7 for Windows 解压缩版配置安装
查看>>
mysql5.7性能调优my.ini
查看>>
mysql5.7的安装和Navicat的安装
查看>>
MySQL8.0.29启动报错Different lower_case_table_names settings for server (‘0‘) and data dictionary (‘1‘)
查看>>
MySQL8修改密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
查看>>
mysqlbinlog报错unknown variable ‘default-character-set=utf8mb4‘
查看>>
mysqldump 导出中文乱码
查看>>
mysqldump备份时忽略某些表
查看>>
mysqlreport分析工具详解
查看>>
MySQL一个表A中多个字段关联了表B的ID,如何关联查询?
查看>>
MYSQL一直显示正在启动
查看>>
MySQL一站到底!华为首发MySQL进阶宝典,基础+优化+源码+架构+实战五飞
查看>>
MySQL万字总结!超详细!
查看>>
Mysql下载以及安装(新手入门,超详细)
查看>>
mysql中cast() 和convert()的用法讲解
查看>>
mysql中floor函数的作用是什么?
查看>>