ARC 131 题解

· · 个人记录

ARC131 题解

直接因为考场上没想到 C 而输麻。

A,B:

C:

你有一个长度为 n 的数组 a , 现在进行一次博弈:

每个人可以删除其中一个数,若剩下的数异或和为 0 则胜利,问最后先手胜负。

$n \leq 4\times 10^5

分析:

下设 n 个数的异或和为 sum

先给出结论:若 n 为奇数,则先手必胜,否则若 \exist i ,使得 sum = a_i ,则先手胜,否则后手胜。

时间复杂度 O(n)O(n \log n)

D:

n 支箭和 2m+1 种区域,分割点从左到右为 r_ir_ir_{2m-i+1} 在数轴上关于对称。这 n 支箭的距离至少为 d

给定 r_{m+1}r_{2m} ,以及每种区域的分值 s_i(也是对称的)。

n,m \leq 10^5 , d \leq 10^6 r_i,s_i \leq 10^{11}

分析:

首先,所有射出去的箭尽量挨在一起,由于 s 的单调性,不会更劣。

注意到靶子是左右对称的,所以我们分左右考虑。对于每一个区域,按照模d的余数将其分成d个区域,只需计算哪个区域最大。两个区域有差别当且仅当有一个区域贴到了边界。我们钦定第一支箭在原点,看偏移 x 位后多出的得分即可。

使用差分,计算的时候更方便。一个区域最多有两种通过箭数的情况,一定最优。

最后再枚举中间箭的位置,看正部分多算的分和负部分的分加起来最大值即可。

时间复杂度 O(m+d)

E:

给定一个 n ,构造一个完全图染色方案,满足下列性质:

n \leq 50

分析:

首先因为第二条性质,若 n \equiv 2 \pmod 3 ,则不满足条件。

对于剩下的,除了 n \leq 4 都满足条件。方案如下( 以n = 9为例子 ):

我们设两种颜色为主要颜色,比如上图的红和黑。按照如下的方式进行构造:

特判:注意一定是黑色先连完。设最后一次黑色连了 x 条,还差 y 条,在上图中 x=4,y=2 。那么用红色边分别填充两部分,连过的和没连过的。最多可以连

证明: 首先如果红色边连完了过后,正确性挺显然的。只需要考虑每条黑色边如何在异色三角形内,发现所有可能性已经被红黑填充了。所以只需要看红色是否可以在最后一步连完。 剩余的红色边数量就是 $ x + max({p | (n-1)+(n-3)+\dots+(n-p*2+1)<=n(n-1)/6}) 因此当 $n$ 大了之后,一定是可以这样构造的 ,而小的情况比较少~~请读者自行证明~~。 时间复杂度 $O(n^2)

(那为什么数据范围是 50 ??? ,学习 Topcoder 了属于是)

F:

不会。

总体评价:

感觉E题明显比D题简单的多?