摘要:
非常神奇的一个套路......首先min-max容斥一波,变成枚举子集然后求所有子集min的期望。 一个子集的期望怎么求?我们可以求出所有的r = 2nm - n - m个选法中能够选到这个子集的方案数k,那么概率就是k / r,则期望是r / k。 发现子集数量上天了......但是这个方案数k十 阅读全文
摘要:
解:SAM + 线段树合并 + DFS序。 姓和名之间插入特殊字符,转化为下题: 给定串集合S,T,问S中每个串包含了T中的几个串?T中每个串被多少个S中的串包含? 解:对S建广义SAM,并线段树合并维护每个节点有多少串。 T中每个串在S的sam上跑,如果没能跑完就被包含0次。否则答案就是到达的节点 阅读全文
摘要:
解:对被包含的那些串建AC自动机。 每次加一个串,就在AC自动机上面跑,可知能够跑到一些节点。 这些节点都是一些前缀的形式,我们跳fail树就是跳后缀,这样就能够得到所有能匹配的子串。 我们分别对AC自动机中的每个串计算答案。 就是要求一些节点到根路径的并集,并对其权值 + 1。查询就查对应节点。 阅读全文
该文被密码保护。 阅读全文