洛谷P3975 TJOI2015 弦論

2022-05-23 22:06:11 字數 638 閱讀 5588

題目大意:求乙個字串的第$k$大字串,$t$表示長得一樣位置不同的字串是否算多個

題解:$sam$,先求出每個位置可以到達多少個字串($right$陣列),然後在轉移圖上$dp$,若$t=1$,初始值賦成$right$陣列大小,否則賦成$1$

卡點:

c++ code:

#include #include #include #include #define maxn 500010

int n, t, k;

namespace sam

} }int sum[n];

int buc[n], rnk[n];

void make()

} void print(int u)

k -= sz[u];

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

} void work()

sz[1] = 0;

print(1);

putchar('\n');

}#undef n

}char s[maxn];

int main()

P3975 TJOI2015 弦論 第K小子串

為了提高智商,zjy開始學習弦論。這一天,她在 string theory 中看到了這樣一道問題 對於乙個給定的長度為n的字串,求出它的第k小子串是什麼。你能幫幫她嗎?第一行是乙個僅由小寫英文本母構成的字串s 第二行為兩個整數t和k,t為0則表示不同位置的相同子串算作乙個,t為1則表示不同位置的相同...

洛谷P3976 TJOI2015 旅遊

為了提高智商,zjy 準備去往乙個新世界去旅遊。這個世界的城市布局像一棵樹,每兩座城市之間只有一條路徑可以互達。每座城市都有一種寶石,有一定的 zjy 為了賺取最高利益,她會選擇從 a 城市 再轉手賣到 b 城市。由於zjy買寶石時經常賣萌,因而凡是 zjy 路過的城市,這座城市的寶石 會 讓我們來...

洛谷P3975 弦論

題意 求乙個串的字典序第k小的子串 本質不同第k小的子串。解 一開始我的想法是在字尾樹上找,但是不知道字尾樹上的邊對應的是哪些字元.然而可以不用fail樹轉移,用轉移邊轉移即可。先建乙個字尾自動機,記憶化搜尋每個節點向後向後有多少個串。然後從起點開始向後乙個字元乙個字元的確定。注意每到乙個新點就要判...