BZOJ3998 弦论 给一个字符串,问其第\(K\)小字串是什么 两种形式 1.不同起始位置的相同串只算一次 2.不同起始位置的相同串各算一次 首先建\(SAM\) 所有串的数量就是\(SAM\)中的从起始点开始的路径数量,所以可以先在\(SAM\)上\(dp\)出来从所有节点开始的子串数量,然后递归找就好了 \(dp\)的转移为\(dp[u] = cnt[u] + \sum_{v \in children} dp[v]\) 对于第一种,每个节点的\(cnt\)为\(1\),对于第二种形式,每…