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