AtCoder tokiomarine2020 题解

Posted nealchen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AtCoder tokiomarine2020 题解相关的知识,希望对你有一定的参考价值。

比赛链接

AK了一把ARC.

A. Nickname

题意:求小写字母串 $S$ 的任意三个字符的子串。$3 le |S| le 20$.

题解:输出 $S[:3]$.

代码链接

B. Tag

题意:A, B在数轴上跑跑抓,A的初始位置是 $a$ 速度是 $v$, B的初始位置是 $b$ 速度是 $w$, 求 $T$ 单位时间内A能不能抓到B. $a e b$, $|a|, |b|, v, w, T le 10^9$, $v, w, T ge 1$.

题解:能抓到当且仅当 $|a-b| le (v-w)T$.

代码链接

C. Lamps

题意:$1$ 到 $N$ 的位置上各有一盏灯,灯 $i$ 的亮度为 $d$ 能够照亮 $[i-d, i+d]$ 范围内的所有灯。给出初始灯的亮度 $A_i$. 定义一次操作为:将每个灯的亮度改为能够被照到它的灯的个数。求 $K$ 次操作后灯的亮度。$1 le N, K le 2 imes10^5$, $0 le A_i le N$.

题解:一次操作显然可以用差分搞定。如果不考虑出界的灯光,一盏亮度为 $d$ 的灯在一次操作后,对总亮度贡献 $2d+1$, 所以每次总亮度大约是翻倍。于是在暴力的基础上加一个“如果亮度序列不动了就停”的剪枝就能过了。时间复杂度不会证,反正A了。

代码链接

D. Knapsack Queries on a tree

题意:给定 $N$ 个点的完全二叉树,每个点都是一个价值为 $V_i$, 重量为 $W_i$ 的背包物品。$Q$ 组询问,每组询问给定 $v, L$, 求背包承重为 $L$, 只考虑 $v$ 到根的路径上的物品时,背包的最大价值。$1 le N<2^{18}, 1 le V_i, W_i, L, Q le 10^5$.

题解:把前 $sqrt N$ 个点关于背包容积为 $1$ 至 $10^5$ 的背包答案预处理出来,每次询问搜索后面的点选不选。时间复杂度 $O((Q+max L)sqrt N)$, 空间复杂度 $O(max Lsqrt N)$.

代码链接

E. O(rand)

题意:给定 $N$ 个不同正整数 $A_1, A_2, ldots, A_n$, 求有多少种选出其中 $1$~$K$ 个的方案,使选出的数按位与为 $S$, 按位或为 $T$. $1 le K le N le 50$, $0 le A_i, S, T < 2^{18}$.

题解:被标题误导去乱搞了。设 $S$ 的二进制表示是 $S_{17}S_{16}cdots S_0$, $T$ 的二进制表示是 $T_{17}T_{16}cdots T_0$. 对于 $S_i=1, T_i=0$, 整个问题宣告无解。对于 $S_i=T_i=1$, 去除那些对应二进制位为 $0$ 的数;对于 $S_i=T_i=0$, 去除那些对应二进制位为 $1$ 的数。对于 $S_i=0, T_i=1$, 就是要求所有对应二进制位为 $0$ 的数必须选至少一个,所有对应二进制位为 $1$ 的数也必须选至少一个。我们现在得到了不超过 $18$ 对互补集。把这些集合打乱顺序,然后对于每个集合搜索其最早选中的是哪个。搜完所有限制以后,剩余的方案数是一个组合数前缀和,预处理出来。时间复杂度不知道多少,反正A了。

代码链接

F. Triangles

题意:给定矩形区域,对角坐标 $(0, 0)$, $(W, H)$. 求有多少个三角形,使得其三个顶点在矩形的三条不同边上(不含端点),且其内部的格点数不超过 $K$. $1 le W, H le 10^5$, $0 le K le 10^5$.

题解:不妨假设三角形三个顶点为 $(0, a), (W, b), (0, c)$, 其余的同理可求。应用匹克定理可得等价条件:$aW-ac+bc le 2K-2+(a-b, W)+(a, c)+(b, W-c)$.

枚举 $b-a=d$, 可不妨设 $d ge 0$, $d<0$ 的情况对称可得。

$aW+cd le 2K-2+(a-b, W)+(a, c)+(b, W-c)$. 由于 $aW ge W ge (a, c)+(b, W-c)$, 可枚举 $c le {2K-2+(d, W) over d}$, 于是可得:$aW le X+(a, c)+(b, W-c)$. 对于 $aW le X$ 的部分,只要在 $(0, H)$ 内一定可行;对于 $X < aW le X+(a, c)+(b, W-c)$ 的部分,只需要检验 $a=leftlfloor X over W ight floor+1$. 时间复杂度 $O((K+W+H) log (K+W+H))$.

代码链接

以上是关于AtCoder tokiomarine2020 题解的主要内容,如果未能解决你的问题,请参考以下文章

Atcoder Panasonic Programming Contest 2020 部分题解

Atcoder 比赛/补题记录榜

AtCoder刷题记录

Atcoder刷题小记

AtCoder 2316 思维题

Awkward Response AtCoder - 2656 ( 二分+交互题)