C F 671 [ d i v 2 ] \mathrm{CF671[div2]} CF671[div2] 题解
比赛链接
A ∼ C \mathrm{A\sim C} A∼C
一眼题不多讲,其实 B \mathrm{B} B 做了我好一会
D 1 + D 2 \mathrm{D1+D2} D1+D2
简单题,我已开始以为只能过 D1 的然后把 D2 也给过了。首先我们把 a i a_i ai 从小到大排序,我们要让“谷”最多那么奇数位置我们就从 a n 2 + 1 a_{\frac{n}{2}+1} a2n+1 放到 a n a_n an,偶数位置我们从 a 1 a_1 a1 放到 a n 2 a_\frac{n}{2} a2n 即可。时间复杂度 O ( n log n ) O(n\log n) O(nlogn)
E \mathrm{E} E
一个很简单的想法就是把最大的数放在开头,因为什么都能配对。然后每一次找到能与上一次填的数不互质的最小因数即可。感觉正确性并没有保证。
F \mathrm{F} F
其实这道题目也不是很难,就是细节写起来比较麻烦。我们考虑二分答案 s s s,然后每次检验答案即对一组 ( i , j ) (i,j) (i,j), d i s ( i , j ) ≤ s dis(i,j)\leq s dis(i,j)≤s 那么就连边,设最后连边结束后联通快个数为 g s gs gs。我们分类讨论:
-
若 g s = 1 gs=1 gs=1 那么就是合法的
-
若 g s > 4 gs>4 gs>4 那么一定是不合法的,用抽屉原理能简单证明
-
若 g s = 2 gs=2 gs=2 那么对于一组 ( i , j ) (i,j) (i,j) 能通过一个点联系起来的情况如图:
-
若 g s = 3 gs=3 gs=3 那么对于一组 ( i , j , k ) (i,j,k) (i,j,k) 我们首先找到横或纵坐标相同的 ( i , j ) (i,j) (i,j),然后枚举 k k k ,判断方法与上面类似
扫描二维码关注公众号,回复: 11854851 查看本文章 -
若 g s = 4 gs=4 gs=4 那么对于一组 ( i , j , k , p ) (i,j,k,p) (i,j,k,p) 我们首先找到横坐标相同的 ( i , j ) (i,j) (i,j),纵坐标相同的 ( k , p ) (k,p) (k,p) 然后判断两线段的交点是否合法即可。
时间复杂度 O ( n 2 ) O(n^2) O(n2)