CF1404D

CF1404D

这是一道交互题

给定 \(2n\) 个数 \(1,2\sim 2n\),A 和 B 进行交互,如下规则:

  • A 需要将元素分成 \(n\)\(\mathbf{pair}\)
  • B 从每组 \(\mathbf{pair}\) 中选择一个元素,如果权值和是 \(2n\) 的倍数那么 B 胜,否则 A 胜。

你需要选择 A/B 中的一者扮演角色,并取得胜利。

\(n\le 5\times 10^5\)

Solution

反正我不会,构造什么的最难了。

  • \(n\) 为偶数

我们选先手。

此时 \(\sum_{i=1}^{n} i=\frac{n(n+1)}{2}\equiv \frac{n}{2}\pmod{n}\)

所以这样构造,每个二元组均为 \((i,i+n)\),不难发现最后模 \(2n\) 意义下为 \(\frac{n}{2}\)

  • \(n\) 为奇数

我们选后手,对于输入的每组 \(\mathbf{pair}\) 我们当作一条边连接 \(a_i,b_i\),然后我们连接 \((i,i+n)\)

由于每个点的度数均为 \(2\),所以这个图由若干个环构成。

现在我们相邻两个点只能选一个点,于是分别处理一下两种可能的选法。

最后我们可以得到的权值和为 \(\sum_{i=1}^{n}i+k\times n\),在 \(\mod 2n\) 意义下即 \(n+k\times n\),将使得 \(k\) 为奇数的情况选出即可。

同时不难注意到,由于 \(n\) 为奇数,所以 \(n\) 的数量和为奇数,所以总存在一种这样的方案。

更加简单的处理是直接黑白染色,如果全选黑不行那就直接全白。

posted @ 2020-09-14 22:24  Soulist  阅读(142)  评论(0)    收藏  举报