CF297 题解
CF297 题解
未独立完成的题目
- C
- E
A
题意
给你两个 01 串 a, b,定义 parity(str): 如果 str 中有奇数个 1,返回 1,否则返回 0。有两种操作
- 把 parity(a) 附到 a 的最后
- 在 a 的前面删掉一个数
可以执行任意步操作,问你是否可以把 a 变成 b。
题解
注意到如果 a 中有偶数个 1,则 1 的数目不可能增多(如果 a 中有奇数个 1,可以先在后面添上一个 1,之后 1 的数目就不可能增多了)。并且通过合适的策略,可以把 a 变成任何一个 1 的数目小于等于它的 01 串。只要数一下 a, b 中 1 的数目即可。
总结
这题考场 AC,并且重新思考时独立完成。
B
题意
有 k 种🐟,每种🐟都有一个重量,并且它们按照重量从小到大排序后有一个编号。Alice 手上有 n 条🐟,Bob手上有 m 条🐟。给出 Alice 和 Bob 手上鱼的编号,问 Alice 手上的🐟的总重是否可以大于 Bob。
题解
首先把这些编号离散化一下,再做个后缀和。从后往前扫,如果某个位置 Alice 手上的🐟的数量大于 Bob 了,我们就把这之后的🐟的重量全赋成 INF,这之前的全赋成 1。这样 Alice 手上的🐟的重量肯定大于 Bob。
总结
这题考场 AC,并且重新思考时独立完成。
C
题意
有一个数组 s,包含 n 个互不相同的非负整数。让你分成两个数组 a, b。使得
a_i,b_i 为非负整数s_i=a_i+b_i
同时,要求 a, b 中重复出现的数分别不超过
题解
构造。把 s 数组排序后,
- a 数组的前
\frac 1 3 填1\sim \frac n 3 ,b 数组对应填。 - b 数组的中间
\frac 1 3 填\frac n 3 \sim \frac{2n} 3 ,a 数组对应填 - b 数组的最后
\frac 1 3 填n-i-1 ,a 数组对应填。
这样保证了 a 数组的前面和后面是两两不同的,b 数组的中间和后面是两两不同的。
总结
这题还记得是分三段构造,但是构造策略没想出来,未独立完成。
D
题意
用 k 种颜色拼成一个
题解
这题给了 E 的数量是否超过总数的
总结
独立完成。
E
题意
一个环上有 2n 个顶点。要求选择 3 条不重复的弦,在它们顶点处建 6 个熊洞,且每条弦的两个端点的距离(距离的定义是在环上经过的熊洞数,取较小值)相同,询问其方案数。
题解
三条弦总共有五种关系,其中 2, 5 是合法的。

但是 2, 5 的方案比较难算,考虑从总方案中减掉 1, 3, 4 的方案。
假设我们能处理出每条弦的左边和右边弦的数量,记为
现在问题是怎么计算
总结
未独立完成。