日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PAT (Basic Level) Practise 1040 有几个PAT(DP)

發(fā)布時(shí)間:2025/3/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PAT (Basic Level) Practise 1040 有几个PAT(DP) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1040. 有幾個(gè)PAT(25)

時(shí)間限制 120 ms
內(nèi)存限制 65536 kB
代碼長(zhǎng)度限制 8000 B
判題程序 Standard 作者 CAO, Peng

字符串APPAPT中包含了兩個(gè)單詞“PAT”,其中第一個(gè)PAT是第2位(P),第4位(A),第6位(T);第二個(gè)PAT是第3位(P),第4位(A),第6位(T)。

現(xiàn)給定字符串,問一共可以形成多少個(gè)PAT?

輸入格式:

輸入只有一行,包含一個(gè)字符串,長(zhǎng)度不超過105,只包含P、A、T三種字母。

輸出格式:

在一行中輸出給定字符串中包含多少個(gè)PAT。由于結(jié)果可能比較大,只輸出對(duì)1000000007取余數(shù)的結(jié)果。

輸入樣例: APPAPT 輸出樣例: 2

?

?

題目鏈接:PAT 1040

題意簡(jiǎn)單就不多說了,反正看到這題感覺是用DP,因?yàn)榭搭}目的意思又取余又計(jì)數(shù)的……然后想了一下,用dp[k][i]表示當(dāng)前到i位置時(shí)收集到了P(0)、PA(1)、PAT(2)三個(gè)字符的個(gè)數(shù)。

然后感覺應(yīng)該有這樣的遞推式:

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;

然后交了一發(fā)居然過了,不知道是數(shù)據(jù)弱還是這個(gè)遞推式?jīng)]有問題……

代碼:

?

#include <stdio.h> #include <bits/stdc++.h> 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<int, int> 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; }

?

轉(zhuǎn)載于:https://www.cnblogs.com/Blackops/p/6257790.html

總結(jié)

以上是生活随笔為你收集整理的PAT (Basic Level) Practise 1040 有几个PAT(DP)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。