http://codeforces.com/contest/698/problem/F
给定一个长度为\(n\)的排列\(p\),有些位置已经填了数字,让你填上剩余的数字
问存在多少的排列满足
若存在\(\forall 1\le i<j\le n \; i \perp j\) 当且仅当 \(p_i \perp p_j\)
首先糊结论
对于排列都没有确定的情况
- 如果存在下标\(i\)和\(j\)满足\(i\)和\(j\)的质因子种类相同,那么可以swap(i, j)
- 如果存在两个质数\(a\)和\(b\),他们在排列出现次数相同,那么可以swap({1 a, 2 a, ..., k * a}, {1 * b, 2 * b, ..., k * b})
然后如果有确定的数的话
可以发现对于位置\(i\)和\(p_i\)他们的质因子是一个双射的关系
便于处理可以将\(1\)看成质数
(做过的题又不会做来补发题解qwq