Codeforces Round 942 (Div. 2)
A. Contest Proposal
大致题意
有两个数组 $a, b$,已经从小到大排序好了,现在往 $a$ 数组最前面再塞入几个值,同时从最后面删除相同数量的值,使得 $\forall i \in [1, n], a_i \leq b_i$
思路
简单题,由于数据量很小,甚至可以暴力
AC code
1 | |
B. Coin Games
大致题意
有两个人做游戏,有几个英镑再桌面上,有些正面朝上有些背面朝上。
每次操作,允许移走一个正面朝上的,然后连续选择两个剩下的影片进行翻转
问谁会操作到最后一次
思路
翻转两个硬币等于没有翻转
AC code
1 | |
C. Permutation Counting
大致题意
有 $n$ 种卡片,每种都有一定数量,现在允许额外再增加 $k$ 张,使得这些卡片可以组成一个数组,数组种的存在的 $[1, n]$ 的排列的子串尽可能多,问可以有多少个
思路
只需要 $1, 2, 3, \dots, n, 1, 2, 3, \dots n$ 类似这样排列即可,通过二分找出每个数值都能到达的数量,然后排列起来
然后是剩下的那部分,比如多了一个 $1$,那么按照上面的排列方式,将 $1$ 放在最后面还能再多一次,即每有一个多出来的种类,就能增加一个子串
AC code
1 | |
D1. Reverse Card (Easy Version)
大致题意
给出 $n, m$,求满足条件的 $a, b$ 对
- $1 \leq a \leq n, 1 \leq b \leq m$
- $(a + b) \space mod \space b \times gcd(a, b) = 0$
思路
假定 $a = x \times y, b = x \times z$,且 $gcd(y, z) = 1$
则可以得到
容易得到,必然 $\frac{y}{z}$ 是整数,而 $gcd(y, z) = 1$,所以 $z = 1$,故 $1 + y = t \times x$
所以很容易得到公式进行计算
AC code
1 | |
D2. Reverse Card (Hard Version)
大致题意
给出 $n, m$,求满足条件的 $a, b$ 对
- $1 \leq a \leq n, 1 \leq b \leq m$
- $b \times gcd(a, b) \space mod \space (a + b) = 0$
思路
假定 $a = x \times y, b = x \times z$,且 $gcd(y, z) = 1$
则可以得到
容易得到,必然 $\frac{y}{z}$ 是整数,而 $gcd(y, z) = 1$,所以必然只能用 $t$ 来承接除过来的 $z$,即上述公式中的表达
所以可以根据公式得到,只需要找到合理的互质数 $y, z$,即可找出有多少个 $x$ 满足条件,因为 $t$ 可以是任意值,即 $x$ 是 $y + z$ 的倍数
AC code
1 | |






