pat 乙級 C 有幾個PAT 25分

2021-10-23 19:17:43 字數 844 閱讀 9285

用三個雜湊分別記錄pat的位置,根據確定某一位置的a所能組成的pat的個數為a左側的p的個數 乘以 a右側的t的個數, 進行a的歷遍。

如果根據p a t三個慢慢歷遍肯定會超時。我還嘗試用二分法分別找第乙個在a右側的p和t,也超時了。還是找用遞推的方法省時間。

#include

#include

#include

#include

#include

#include

//用set試試

using

namespace std;

intupper_b

(int x,vector<

int> vec,

int left,

int right,

int flag)

}else

}while

(leftelse

}return left;

}int

main()

;}int len1=hashtablep.

size()

;int len2=hashtablea.

size()

;int len3=hashtablet.

size()

; i=0;

for(j=

0; j)while

(hashtablet[k]

cnt=

(cnt+i*

(len3-k))%

1000000007;}

printf

("%d"

,cnt)

;return0;

}

PAT乙級 1040 有幾個PAT 25分

題目 現給定字串,問一共可以形成多少個 pat?輸入格式 輸入只有一行,包含乙個字串,長度不超過105,只包含 p a t 三種字母。輸出格式 在一行中輸出給定字串中包含多少個 pat。由於結果可能比較大,只輸出對 1000000007 取餘數的結果。輸入樣例 輸出樣例 2我的 include in...

PAT乙級 1040 有幾個PAT 25分

1040 有幾個pat 25分 現給定字串,問一共可以形成多少個pat?輸入只有一行,包含乙個字串,長度不超過10 5 只包含p a t三種字母。在一行中輸出給定字串中包含多少個pat。由於結果可能比較大,只輸出對 1000000007 取餘數的結果。2很多題解都是前面的p乘以後面的t,又是設定ma...

PAT乙級 1040 有幾個PAT(25)

題目 現給定字串,問一共可以形成多少個pat?輸入格式 輸入只有一行,包含乙個字串,長度不超過105,只包含p a t三種字母。輸出格式 在一行中輸出給定字串中包含多少個pat。由於結果可能比較大,只輸出對1000000007取餘數的結果。輸入樣例 輸出樣例 pat鏈結 sum of 每個 a 左邊...