博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PAT (Basic Level) Practise 1040 有几个PAT(DP)
阅读量:5148 次
发布时间:2019-06-13

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

1040. 有几个PAT(25)

时间限制
120 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CAO, Peng

字符串APPAPT中包含了两个单词“PAT”,其中第一个PAT是第2位(P),第4位(A),第6位(T);第二个PAT是第3位(P),第4位(A),第6位(T)。

现给定字符串,问一共可以形成多少个PAT?

输入格式:

输入只有一行,包含一个字符串,长度不超过105,只包含P、A、T三种字母。

输出格式:

在一行中输出给定字符串中包含多少个PAT。由于结果可能比较大,只输出对1000000007取余数的结果。

输入样例:
APPAPT
输出样例:
2

 

 

题目链接:

题意简单就不多说了,反正看到这题感觉是用DP,因为看题目的意思又取余又计数的……然后想了一下,用dp[k][i]表示当前到i位置时收集到了P(0)、PA(1)、PAT(2)三个字符的个数。

然后感觉应该有这样的递推式:

dp[0][i] = (dp[0][i - 1] + 1) % mod;

dp[1][i] = (dp[1][i] + dp[0][i - 1]) % mod;
dp[2][i] = (dp[2][i] + dp[1][i - 1]) % mod;

然后交了一发居然过了,不知道是数据弱还是这个递推式没有问题……

代码:

 

#include 
#include
using namespace std;#define INF 0x3f3f3f3f#define LC(x) (x<<1)#define RC(x) ((x<<1)+1)#define MID(x,y) ((x+y)>>1)#define CLR(arr,val) memset(arr,val,sizeof(arr))#define FAST_IO ios::sync_with_stdio(false);cin.tie(0);typedef pair
pii;typedef long long LL;const double PI = acos(-1.0);const int N = 1e5 + 7;const int mod = 1000000007;char s[N];int dp[3][N];int main(void){ int i, len; while (~scanf("%s", s + 1)) { CLR(dp, 0); len = strlen(s + 1); for (i = 1; i <= len; ++i) { dp[0][i] = dp[0][i - 1]; dp[1][i] = dp[1][i - 1]; dp[2][i] = dp[2][i - 1]; if (s[i] == 'P') dp[0][i] = (dp[0][i - 1] + 1) % mod; else if (s[i] == 'A') dp[1][i] = (dp[1][i] + dp[0][i - 1]) % mod; else if (s[i] == 'T') dp[2][i] = (dp[2][i] + dp[1][i - 1]) % mod; } printf("%d\n", dp[2][len]); } return 0;}

 

转载于:https://www.cnblogs.com/Blackops/p/6257790.html

你可能感兴趣的文章
Vue安装准备工作
查看>>
oracle 创建暂时表
查看>>
201421410014蒋佳奇
查看>>
Xcode5和ObjC新特性
查看>>
LibSVM for Python 使用
查看>>
Centos 7.0 安装Mono 3.4 和 Jexus 5.6
查看>>
CSS属性值currentColor
查看>>
java可重入锁reentrantlock
查看>>
浅谈卷积神经网络及matlab实现
查看>>
解决ajax请求cors跨域问题
查看>>
《收获,不止Oracle》pdf
查看>>
Real-Time Rendering 笔记
查看>>
如何理解HTML结构的语义化
查看>>
Activity之间的跳转:
查看>>
实验四2
查看>>
多路复用
查看>>
Python数据可视化之Pygal(雷达图)
查看>>
Java学习笔记--字符串和文件IO
查看>>
转 Silverlight开发历程—(画刷与着色之线性渐变画刷)
查看>>
SQL语法(3)
查看>>