1040 有幾個PAT 25分

2021-10-05 21:53:42 字數 895 閱讀 1670

25分題中不是很難的一道,沒錯我就是挑軟柿子捏,今天一定要把basic搞完,阿彌陀佛別拖拉了。。。

第一次提交後三個測試點執行超時(迴圈過多吧)。。。。一開始是每遇到乙個a就從前往後迴圈看這個a前面有多少p,有多少t。

第二次提交後後兩個測試點答案錯誤,但是不超時了!微笑 -

由於結果可能比較大,只輸出對 1000000007取餘數的結果。(題目中的說明)

不要忽略這一句,這說明了個數有可能很大,所以將sum改為longlong型後面兩個測試點就過了!!

呵呵。。。。

演算法思想就是記錄每乙個a前後的p、t個數,然後乘一下再加一下~

#include#includeusing namespace std;

int main() ;

int t[100001] = ;

long long int sum = 0;

int ptemp = 0, ttemp = 0;

getline(cin, a);

j = 0;

//從前往後統計每乙個a前p的個數

for (i = 0; i < a.length(); i++)

if (a[i] == 'a')

} k = 0;

//從後往前統計每乙個人a後t的個數

for (i = a.length() - 1; i >= 0; i--)

if (a[i] == 'a')

} //p--123

//t--321

for (i = 0; i < j; i++)

cout << sum % 1000000007 << endl;

return 0;

}

1040 有幾個PAT 25 分

現給定字串,問一共可以形成多少個pat?輸入只有一行,包含乙個字串,長度不超過10 5 只包含p a t三種字母。在一行中輸出給定字串中包含多少個pat。由於結果可能比較大,只輸出對 1000000007 取餘數的結果。2 includeusing namespace std int countp ...

1040 有幾個PAT 25 分

現給定字串,問一共可以形成多少個pat?輸入格式 輸入只有一行,包含乙個字串,長度不超過10 5 只包含p a t三種字母。輸出格式 在一行中輸出給定字串中包含多少個pat。由於結果可能比較大,只輸出對 1000000007 取餘數的結果。輸入樣例 輸出樣例 2一開始的思路是以p為結點找每個p後面有...

1040 有幾個PAT 25分

思路分析一 此題如果直接暴力會超時,所以應該找到規律。通過觀察輸出結果其實就是對於乙個確定位置的a來說,其左邊p的個數乘以其右邊的t的個數。那麼接下來的工作就是統計確定位置a左邊的p的個數。可以設定乙個資料leftnump,記錄p的個數。如果當前位i是p,那麼leftnump i 否則,leftum...