HDU 3925 Substring 大數相減

2022-04-14 14:49:20 字數 2129 閱讀 2625

題目意思是,給你提供兩個數字 a 和 b

a 可以不斷的往上加, 直到b 為其子串

問的是 a 最小加幾?

顯而易見,a  的資料範圍給了10 ^100非常大,直接模擬肯定不行

那麼就用 b 減去 a 來找,也算是一種模擬的方法

舉個例子, a = 1299, b = 33

<1>33     330  3300   33000

(12)99   (1)299  1299    1299

34      31  2001   32001

如果當前 b 比a的部分小,在前面添1

每次比較完在b後面添0

取所有比較結果中最小的數字作為答案

當然,如果a <= b 是可以直接得到答案的 ans = b - a 

但是這題用g++提交不知道為什麼會wa

c++就能過

hdu5769Substring 字尾陣列

題意 給你乙個字元x和乙個字串s,問你s中有多少個不相同的子串?且必須含有字元x。題解 1 我們可以利用字尾陣列來做這道題。我們求出我們要的三個陣列ra,sa,height。字尾陣列求出來的三個陣列 2 我們知道乙個字尾能夠貢獻出n sa i 1 height i 個不相同的子串,而我們要包含字元x...

HDU 5769 Substring 字尾陣列

傳送門 思路 不考慮x字元,先考慮怎麼求本質不同的串有幾個,那麼就是列舉一遍height陣列,去掉字首相同的就可以了。我們考慮x字元的話,就要保證所有求得的串都要包含這個字元。那麼我們事先求乙個陣列,pos i 表示當前字元 包括自身 的右邊的第乙個x字元的位置。然後還是列舉height陣列,當前字...

HDU 5769 Substring(字尾陣列)

求字串 s 本質不同且一定包含字元 x 的子串個數。1 leq s leq 10 5 求乙個長度為 n 的串 s 本質不同的子串個數可以使用公式 displaystyle sum n sa i 1 h i 其中 h 0 1 這個公式是比較好證的。字尾的字首就是子串,我們分析每個字尾有多少個對答案有貢...