1 条题解
信息
- ID
- 2818
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- (无)
- 递交数
- 27
- 已通过
- 9
- 上传者
注意到,我们设
f(x)=A矩阵第 x 行最终到的位置 g(y)=A矩阵第 y 列最终到的位置有
Ax,y=Bf(x),g(y)发现,当固定
f(t)=1可以发现,所有的g(y) 也固定了
所以,枚举 t ,固定 f(t)=1,再枚举 y,得到所有g(y),如果匹配不上就舍弃这个 t
然后,按照 g(y) 计算 f(x),直接 O(n2) 即可
把 f 和 g 分别看成 n 元排列。每个排列可以分解成若干置换环,一个长 k 的环需要 k−1 次交换归位
所以显然有:
置换环:从 i 出发,不断跳 i→f(i)→f(f(i))→… 直到回到起点,走过的点构成一个环。每个环数一次,标记已访问