2023 年 9 月训练记录

训练记录

9 月没做题。


不能摆了,再摆就完蛋了。

CF1784F Minimums or Medians

很厉害的题。

我们考虑找充要条件:

  1. 注意到所有被删除的连续段长度都是偶数。并且不同的连续段之间,都是被分开删除的。

    注意到只有从 \(1\) 开始的连续段才可能用操作 1 删除,于是其它被删的数都是通过操作 2 删除的。

  2. 注意到第 \(i\) 次若为操作 2,则删除的较大数为 \(i+n\),所以,被删除的数都必须 \(\le n+k\)

  3. 注意到若删除了数 \(t\le n\) 不在第一段,则 \([t,2n-t+1]\) 的数都必须被删除。

上述 3 个必要条件是充分的,因为考虑我可以通过构造,每次能用操作 2 就用操作 2,否则就用操作 1,不难发现一定是合法的。

设函数 \(f(n, m)\) 表示长度为 \(n\) 的段中,选出 \(2m\) 个数,并要求选出的数形成长度为偶数的连续段。考虑捆绑法,我们没选出一个数就要求必须选它后面的那个数,于是这样就只有 \(n-m\) 个物品,从中选出 \(m\) 个,所以是 \(\binom{n-m}{m}\)

考虑如何计数。首先,我们枚举从 1 开始的连续段需要操作的次数 \(t\),因为涉及到条件 3,所以我们需要根据是否覆盖超过一半来分类讨论:

  1. \(2t < n\),于是再枚举在 \(n\) 之前被删掉的连续段长度 \(c\),于是得到:
\[\sum_{t=1}^{\min\{k, \lfloor \frac{n-1}{2} \rfloor\}} \sum_{c=0}^{\min\{k - len, n - 2k - 1\}}f(k-c,k-t-c) \]

注意到 \(len\) 增加时,组合数的变化可以 \(O(1)\) 维护,类似莫队移动指针,加入或删除组合数。

  1. \(2t \ge n\),那么剩下的就可以随便操作,于是对答案的贡献为:
\[\sum_{len = \lceil\frac{n}{2}\rceil}^{k} f(n + k-2t-1, k - t) \]

记录

CF325E The Red Button

爵士好题。

首先,主要到每个点出度为 \(2\),并且入度为 \(2\)

注意到 \(n\) 为奇数无解。因为 \(0\)\(n-1\) 都有自环,并且另一条入边都是从 \(\frac{n-1}{2}\) 连出的。

考虑 \(n\) 为偶数。由于入度、出度都为 \(2\),所以相当于在求欧拉回路。注意到 \(i(i<\frac{n}{2})\)\(i+ \frac{n}{2}\) 的出边是一样的。我们先让他们任意选。

这样可能会出现小环,于是我们直接交换下他们所选的变就可以了。

变成

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值