摘要:
考虑算每一个位置在所有情况的期望值乘以全排列似乎就是答案. 那么对于 $i$,如果要由 $j$ 来贡献的话就要满足 $j$ 在 $i....j-1$ 之前先拿. 而在拿 $j$ 时,先于 $i...j-1$ 的概率就是 $\frac{1}{|j-i|+1}$ 直接对所有的 $j$ 加和,然后乘以个概 阅读全文
摘要:
如果字符集无限大的话直接按照 $sa$ 的顺序依次填即可. 由于字符集非常小,所以要尽量填相同的字符. 我们知道 $sa$ 数组,也就知道了 $rank$ 数组. 那么考虑添加排名为 $i$ 的字符: 如果 $rank[sa[i-1]+1]>rank[sa[i]+1]$,说明 $sa[i]$ 的字典 阅读全文
摘要:
发现每一次切割都会使另一方向所有切割次数++. 而每一刀的代价就是 cost 切割次数,故贪心按照cost从大到小排序即可. cpp include define N 200000 define LL long long using namespace std; void setIO(string 阅读全文