用户工具

站点工具


2020-2021:teams:i_dont_know_png:multi2020-nowcoder-2

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
2020-2021:teams:i_dont_know_png:multi2020-nowcoder-2 [2020/07/18 09:43]
qxforever [解题思路]
2020-2021:teams:i_dont_know_png:multi2020-nowcoder-2 [2020/08/15 18:05] (当前版本)
nikkukun add J
行 18: 行 18:
  
 注意自然溢出 hash 的底数不要用偶数。 注意自然溢出 hash 的底数不要用偶数。
 +
 +====  解题思路 2 ====
 +
 +串的所有 border 是其 AC 自动机上的所有 fail 链,因此对每个串的前缀,只需要统计从根节点到该节点上,所有串最近的 fail 链做的贡献之和,这个可以在遍历过程中用一个栈维护。或者可以先处理每条 fail 链上长度平方的增量,这样进出一个节点时就只用加减该节点上贡献的增量即可。
 +
 +
  
 =====  B - Boundary =====  =====  B - Boundary ===== 
行 114: 行 120:
  
 用区间代表的二元组建成一个 $n \times n$ 的网格图,相当于禁掉一些边,使得 $(1, n)$ 不能走到 $y = x$ 的位置上。这个东西是平面图最小割,参考 [[https://​www.luogu.com.cn/​problem/​P4001 | 狼抓兔子]] 跑最短路即可。 用区间代表的二元组建成一个 $n \times n$ 的网格图,相当于禁掉一些边,使得 $(1, n)$ 不能走到 $y = x$ 的位置上。这个东西是平面图最小割,参考 [[https://​www.luogu.com.cn/​problem/​P4001 | 狼抓兔子]] 跑最短路即可。
 +
 +
 +
 +
 +===== J - Just Shuffle =====
 +
 +Solved by nikkukun & qxforever.
 +
 +==== 题目描述 ====
 +
 +给一个长度 $n \leq 10^5$ 的置换 $A$ 和一个大质数 $k \in [10^8, 10^9]$,求是否存在另一个置换 $P$ 使得 $P^k = A$。
 +
 +==== 解题思路 ====
 +
 +考虑 $P$ 轮换乘积形式中的每个轮换,其 $k$ 次方相当于轮换移动了 $k$ 次。由于 $k$ 是个大质数,其必然与轮换长度互质,故轮换操作不会改变轮换长度(不互质的情况可能会让一个轮换变成很多小轮换),直接将 $A$ 中的每个轮换倒着移动 $k$ 次即可还原。
 +
 +总时间复杂度 $O(n)$。
 +
 +
 +
 +
 +
 +===== K - Keyboard Free =====
 +
 +Solved by qxforever & Potasium.
 +
 +==== 题目描述 ====
 +
 +给三个同心圆的半径,每个圆上随机取一点,求所成三角形面积的期望。
 +
 +==== 解题思路 ====
 +
 +根据两个角度暴力计算推出二重积分式:$\frac{1}{(8{\pi}^2)}\int_{0}^{2\pi}\int_{0}^{2\pi} r_1(r_2sin(x)-r_3sin(y))+r_2r_3(cos(x)sin(y)-cos(y)sin(x)) \text{d}x\text{d}y$
 +
 +套两个辛普森积分,要调调参数。
  
  
2020-2021/teams/i_dont_know_png/multi2020-nowcoder-2.1595036611.txt.gz · 最后更改: 2020/07/18 09:43 由 qxforever