CF104 Div.2 全场题解
A - Lucky Ticket
题意
判断一个数是否满足条件:
- 只由 $4,7$ 组成。
- 前半段之和等于后半段之和(保证长度是偶数)
题解
模拟即可。
B - Luck Mask
题意
找大于 $a$ 的,面罩数 $b$ 的,最小的 $c$ 并输出。
面罩数:按照从高位到地位的顺序把一个数中所有 $4,7$ 按顺序凭借在一起
题解
do while
找符合条件的最小 $c$,注意一定是大于。
C - Lucky Conversion
题意
你有两个序列 $a,b$,有两种操作:
- 修改 $a$ 中的一个字符从 $4$ 到 $7$ 或者从 $7$ 到 $4$ 。
- 交换 $a$ 中任意两个字符
题解
考虑修改最多可以让多少个字符变得正确(只能修改把 $7$ 和 $4$ 的数量补到相等的次数)然后剩余的还不相等就交换,交换次数除以二。
D - Lucky Number 2
题意
构造一个由 $4,7$ 构成的序列,满足其拥有 $a1$ 个 $4$、$a2$ 个 $7$、$a3$ 个 $47$、$a4$ 个 $74$ 。无解输出 $-1$ 。
题解
首先判断无解:abs(a3 - a4) > 1
/ min(a1, a2) <= max(a3, a4)
;
随后开始构造。分三种情况讨论:
- $a3 = a4$,这里还有一个隐藏的无解:
a1 <= a3 && a2 <= a4
;剩下的没什么难度 - $a3 > a4$,手模即可
- $a3 < a4$,仍然手模
E - Lucky Subsequence
题意
给一个序列 $a$,选择一个下标子序列 $b$,满足幸运数不重复且长度为 $k$ 。
幸运数:只由 $4,7$ 组成的数字。
题解
很容易考虑到可以把普通数和幸运数分开考虑。普通数就是正常组合数学,幸运数就是显然的动态规划了。
注意到幸运数总共就只有 $1022$ 个,所以可以直接 $O(n^2)$ DP 处理,设状态为 $dp[i][j]$ 表示前 $i$ 种数选择 $j$ 个的方案数。
实际上这道题远远不足蓝题,都能被我场切那一定是红题了。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 祝馀宫!
评论