題目意思是,給你提供兩個數字 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 這個公式是比較好證的。字尾的字首就是子串,我們分析每個字尾有多少個對答案有貢...