ARC 116/119 与 CF Round 712 Div.2 比赛记录

ARC 116

赛时通过 ( ext{A,B,C}),排名 (885),Performance (1529)

A

找规律发现若:

  • (xmod 4=1lor xmod 4=3)( ext{Odd})
  • (xmod 4=2)( ext{Same})
  • (xmod 4=0)( ext{Even})

B

(A) 排序,并整理成 ((a_i,b_i)) 的形式,其中 (b_i) 表示 (a_i) 的出现次数。

枚举子集 (B)(max),推一下式子即可。

C

可以发现,若约数链中不允许有相同的数,那么其长度最多为 (log_2m)

(f_{i,j}) 为长度为 (i) 的约数链,最后一个数为 (j) 且不允许有相同数字的方案数。

这个可以 (O(m log^2 m)) 计算。

枚举 (i,j),然后考虑在约数链之间填上相同的数有多少种填法即可,这个可以用隔板法计算。

D

考虑那个 (operatorname{xor}) 和为 (0) 的条件,其实是规定了每一位上都要有偶数个 (1)

拆位计算,那么当我们确定了从低到高的第 (i) 位时,其实可以将它归约到一个相同的子问题:计算最高的 ((i+1)) 位。

(f_i)(n) 个和为 (i) 的数,且 (operatorname{xor}) 和为 (0) 的方案数。

那么 (f_i=egin{cases}sumlimits_j f_{(i-2j)div 2} & i mod 2=0\ 0 & i mod 2 =1end{cases})

E

重题:P3523 [POI2011]DYN-Dynamite

因为 POI 这题好像还难点,我就做这道题了。

阳间翻译可以看 https://loj.ac/p/2165

看到这种“最大值最小”之类的先想到二分。二分答案 (x),于是问题变成了“能否选 (m) 个点,使得关键点到这些点距离的最小值的最大值 (le x)”。

考虑树形 dp,设 (f_u) 为以 (u) 为根的子树内,距离 (u) 最远的、未被覆盖的关键点,到 (u) 的距离,(g_u) 为以 (u) 为根的子树内,距离 (u) 最近的、被选中的点,到 (u) 的距离;变量 (N) 表示当前关键点个数。

一开始 (f_u=maxlimits_{vin son_u}{f_v}+1)(g_u=minlimits_{vin son_u}{g_v}+1)

然后分三种情况特判:

  • (f_u+g_ule x):说明用 (g_u) 代表的点即可覆盖子树内所有关键点,(f_ugets -inf)
  • (f_u=x):点 (u) 必须选,(f_u gets -inf,Ngets N+1)
  • (g_u>xland d_u):点 (u) 是关键点,但子树中没有能覆盖它的。于是我们令 (f_ugets max(f_u,0)),表示把它丢给父亲处理。

对于根节点:如果 (f_{ ext{root}} eq -inf),那么 (Ngets N+1)

为什么不用特判 (f_u>x) 的情况?因为这种情况不存在,(f_u) 最多会比 (max{f_v})(1),我们已经特判了 (f_u=x) 的情况,就不用再特判这个了。

CF #712 Div.2

赛时通过 ( ext{A,B,C}),排名 (1761)

A

插入的字符 ( ext{a}) 要不然插入在开头,要不然插入在末尾。

B

略。

C

被这个 C 卡了好久,看来要好好练练构造啊。

一个合法的括号串,其中一定包含恰好一半的左括号。

所以,若 (s) 中有奇数个 (0),那么一定无法构造。

否则,我们计算出 (s)(1) 的个数 (c_1)。对于前 (dfrac{c_1}{2})(1) 的位置我们填左括号,对于后 (dfrac{c_1}{2}) 个位置我们填右括号。

然后 (s)(0) 的位置就瞎搞一下即可。

D

可以发现,如果一个元素旁边有三种不同的颜色,就挂了。

如果一个地方有两种相邻的不同颜色,而且该轮 ( ext{ban}) 掉的是剩下的那种颜色,这个地方也填不了。

考虑怎样避免这两种情况:

  • 将网格黑白染色,染成棋盘状。记三种颜色是 (1,2,3),其中颜色 (1) 是黑色,颜色 (2) 是白色。
  • 如果 ( ext{ban})(1),就选没填的白色填一下。如果白色的位置都被填了,说明黑色的地方瞎填就行了,所以可以任选一个地方填 (3)
  • ( ext{ban})(2) 以此类推。
  • ( ext{ban})(3) 瞎填即可。

E

https://www.luogu.com.cn/blog/alan-zhao/solution-cf1503c

ARC 119

赛时通过 ( ext{A,B,C}),排名 (616),Performance (1639)

A

枚举 (b),计算相应的 (a,c) 再取最优解即可。

B

首先题目中描述的操作可以看作每个 (0) 都可以在它所在的极长 (1) 连续段中移动。

有一个关键性质:(S) 中的第 (i)(0),与 (T) 中的第 (i)(0) 相对应。这是因为 (S) 中的两个零如果在交换过程中相互跨越了,那么一定不比不跨越优。

于是 (S) 中的每个 (0) 都可以通过至多 (1) 次交换达到目标。找到那些不需要操作的 (0) 即可。

C

可以发现若区间 ([l,r]) 是合法的,那么一定有 (A_l-A_{l+1}+A_{l+2}-dotspm A_{r}=0)

于是我们可以把所有 (A_{2i}gets -A_{2i})

这样问题就转化为问 (A) 中有多少个区间满足和为 (0)

随便做做。

Written by Alan_Zhao
原文地址:https://www.cnblogs.com/alan-zhao-2007/p/cf-712-arc-116-119.html