1040 有幾個PAT C C 實現

2021-08-30 16:00:48 字數 1154 閱讀 3909

1040 有幾個pat (25 分)

現給定字串,問一共可以形成多少個pat

輸入只有一行,包含乙個字串,長度不超過10​5​​,只包含pat三種字母。

在一行中輸出給定字串中包含多少個pat。由於結果可能比較大,只輸出對 1000000007 取餘數的結果。

2
思路:

思路1:這道題可以倒著看,t之前的a的數量可以得到at的數量(這裡注意a前一定要有p),a之前p的數量可以得到pa的數量,因此pat的數量應該是a之前p的數量之和和t之前a的數量之和的積。

思路2:pat basic 1040. 有幾個pat(25)(c語言實現)

從前向後掃瞄:

#include #define lim 1000000007 

int main()

printf("%d", pat);

return 0; }

思路3:1040. 有幾個pat(25)-pat乙級真題

累加每個a兩邊p和t的個數之積。

分析:要想知道構成多少個pat,那麼遍歷字串後對於每一a,它前面的p的個數和它後面的t的個數的乘積就是能構成的pat的個數。然後把對於每乙個a的結果相加即可~~辣麼就簡單啦,只需要先遍歷字串數一數有多少個t~~然後每遇到乙個t呢~~countt-- ;每遇到乙個p呢,countp++;然後一遇到字母a呢就countt * countp~~把這個結果累加到result中~~最後輸出結果就好啦~~對了別忘記要對10000000007取餘哦~~

#include #include using namespace std;

int main()

for (int i = 0; i < len; i++)

cout << result;

return 0;

}

關於為什麼要對10000000007取餘,請戳:為什麼要對1000000007取模(取餘)

1040 有幾個PAT(邏輯題)

時間限制 120 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 cao,peng 現給定字串,問一共可以形成多少個pat?輸入格式 輸入只有一行,包含乙個字串,長度不超過105,只包含p a t三種字母。輸出格式 在一行中輸出給定字串中包含多少個pat...

乙級題 1040 有幾個PAT

1040 有幾個pat 25 分 現給定字串,問一共可以形成多少個pat?輸入只有一行,包含乙個字串,長度不超過10 5 只包含p a t三種字母。在一行中輸出給定字串中包含多少個pat。由於結果可能比較大,只輸出對 1000000007 取餘數的結果。2要注意,如果用樸素的演算法,會有幾個測試點超...

PAT乙級 1040 有幾個PAT

現給定字串,問一共可以形成多少個 pat?輸入格式 本來是說從pat甲級再開始記錄做題記錄的,但是難度明顯高於我自己的想象,所以現在在乙級題中,覺得特別有價值的需要來記錄一下。自己的 如下 include define m 1000000007 include using namespace std...