码迷,mamicode.com
首页 > 其他好文 > 详细

codeforces 698F

时间:2018-07-22 19:22:33      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:一个   com   质数   uri   class   span   题解   code   相同   

http://codeforces.com/contest/698/problem/F

给定一个长度为\(n\)的排列\(p\),有些位置已经填了数字,让你填上剩余的数字

问存在多少的排列满足

若存在\(\forall 1\le i<j\le n \; i \perp j\) 当且仅当 \(p_i \perp p_j\)

首先糊结论

对于排列都没有确定的情况

  1. 如果存在下标\(i\)\(j\)满足\(i\)\(j\)的质因子种类相同,那么可以swap(i, j)
  2. 如果存在两个质数\(a\)\(b\),他们在排列出现次数相同,那么可以swap({1 a, 2 a, ..., k * a}, {1 * b, 2 * b, ..., k * b})

然后如果有确定的数的话

可以发现对于位置\(i\)\(p_i\)他们的质因子是一个双射的关系

便于处理可以将\(1\)看成质数

(做过的题又不会做来补发题解qwq

codeforces 698F

标签:一个   com   质数   uri   class   span   题解   code   相同   

原文地址:https://www.cnblogs.com/foreverpiano/p/9351030.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!