【10.23】【VP】Codeforces Round #761 (Div. 2)

ALL:6
AC:4
补题:0
Rank:521


B. GCD Problem

题意:略。

思路:要构造 a , b a,b a,b a + b = n a+b=n a+b=n 满足 gcd ⁡ ( a , b ) = 1 \gcd(a,b)=1 gcd(a,b)=1 ,可以从 n 2 \frac n 2 2n 开始暴力枚举即可。这样可以理解为均摊 O ( 1 ) O(1) O(1) 的。

AC代码:https://codeforces.com/contest/1617/submission/177520270


C. Paprika and Permutation

题意:

有一个长度为 n n n 的数组 a 1 , a 2 , … , a n a_1,a_2,\dots,a_n a1,a2,,an。每次操作你可以选择数组中的一个元素 a i a_i ai x x x,然后将 a i a_i ai 替换为 a i   m o d   x a_i\bmod x aimodx

求至少要多少次操作才能够将数组 a a a 变为一个 1 1 1 n n n 的排列。如果无法实现,输出 − 1 -1 1

数据范围:

  • t t t 组数据, 1 ⩽ t ⩽ 1 0 4 1\leqslant t\leqslant 10^4 1t104
  • 1 ⩽ n ⩽ 1 0 5 1\leqslant n\leqslant 10^5 1n105 ∑ n ⩽ 2 × 1 0 5 \sum n\leqslant 2\times 10^5 n2×105
  • 1 ⩽ a i ⩽ 1 0 9 1\leqslant a_i\leqslant 10^9 1ai109

思路:枚举 1 ∼ n 1\sim n 1n 的每一个数,如果在集合里,就标记为已填充,然后删除集合中对应数字。否则为未填充。

然后从小到大枚举集合的数,看看能不能填充排列中的未填充数字。一个数 a a a 1 ≤ x < a 1\leq x<a 1x<a 的任意数取模,值域一定是 [ 0 , ⌈ n 2 ⌉ − 1 ] [0,\lceil \frac n 2 \rceil -1] [0,2n1] 且是满射的。

AC代码:https://codeforces.com/contest/1617/submission/177521799


D1. Too Many Impostors (easy version)

题意:略。见 洛谷

思路:枚举每三个相邻的人。可以发现,两个相邻的三元组 ( a i , a j , a k ) , ( a j , a k , a l ) (a_i,a_j,a_k),(a_j,a_k,a_l) (ai,aj,ak),(aj,ak,al) ,如果返回值不相同,可以推理得出两个位置 i , l i,l i,l 上是好人还是坏人。那么就可以利用这两个人推出来其他人是好还是坏。由 k k k 的范围也可以知道三元组返回值必然有 0 0 0 1 1 1

AC代码:https://codeforces.com/contest/1617/submission/177525425


D2. Too Many Impostors (hard version)

题意:略。

待补。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值