- T1
- 读题十分恶心,大概是有一个 \(n \cdot m\) 的网格图,统计最多的从 \((1,1)\) 到 \((n,n)\) 的路径数每一步往右或往下走,还有若干个障碍,路径要满足,按包含障碍的集合大小升序排序之后,使得各个路径拥有的障碍数不同,且第 \(i\) 条路径有的障碍,第 \(i+1\) 条路径必须有
- 如果 \((x+1,y)\) 和 \((x,y+1)\) 都是障碍则 \((x,y)\) 和 \((x+1,y+1)\) 都不能走了干脆将它设成障碍
- 我们则是要求障碍相邻的连通块数即可
- T2
- 首先考虑 \(m=1\) 那很简单了,我们直接建立 \(trie\) 树然后求 lca 即可
- 然后考虑 minmax 容斥
- 即$ \max(a, b, c) = a + b + c - \min(a,b) - \min(b, c) - \min(a, c) + \min(a, b, c)$
- 问题转换为求 \(\min\)
- 令现在仍有 \(t\) 个字符串
- 则我们可以考虑把 \(t\) 个字符串最短的长度设为 \(len\) ,每个字符串都取前 \(len\) 个字符,从第一个字符开始一个一个字符加入。
- 即加入序列为 \(s_{i,1,1},s_{i,2,1}, …… s_{i,t,1},s_{i,1,2},s_{i,2,2}, …… s_{i,t,2} …… s_{i,1,len},s_{i,2,len}, …… s_{i,t,len}\)
- 按照这个序列构建 trie 树
- 所以我们此时可以发现 \(i\) 和 \(j\) 的 \(\min_lcp\) 即为它们的 \(\frac{dep_lca}{m}\)