2018 ICPC Asia-East Continent Final

From EOJ Wiki
Revision as of 11:41, 18 December 2018 by Oxx1108 (talk | contribs) (→‎Problem F)
Jump to navigation Jump to search

ECNU Foreigners

Replay

ultmaster:

  • 没来:没怎么看到我会做的题。这一定是因为题目太少了。(甩锅.jpg)
  • 前期一直在 200 多名徘徊。
  • 好像不管哪里少 20 分钟都能进顺位五啊?为什么又是这种不尴不尬的位置啊?
  • 难得的单线作战。

kblack:

  • 演爆了。
  • 好像不用女装了?

zerol:

  • kblack 虽然演了,但是多次阻止了惨剧发生,修复了队友。(那么修自己的 bug 容易还是修队友的 bug 容易?)
  • 难得来了一次,没有遗憾。(那是假的,随便哪里少一发罚时,kblack 就女装了好吗?)

Problem A

Unsolved. (-11)

比赛还剩半小时,无事可做。

Problem C

Solved by zerol. 02:53 (+1)

题意:问一个长度为 200 的 01 串在长为 $10^9$ 的 $|\mu(i)|$ 的数列中第一次出现的位置,或者不存在。

题解:考虑素数的平方的倍数一定是 0,计算答案模 4, 9, 25, 49, 121, 169 的可能的余数,然后 CRT 求出这个数,然后从小到大判断。注意如果可能性太多肯定是无解的(比如全是 0)。

Problem D

Solved by ultmaster. 00:19 (+)

温暖的签到。(被 kblack 抢机了。

Problem F

Solved by kblack. 01:16 (+1)

小学数学题,死于式子抄漏。

Problem H

Unsolved. (-1)

配合演出。

Problem I

Solved by zerol. 01:40 (+)

题意:初始攻击 A 和攻击增长速率 D 均为 0。每一回合 A 会增加 D,然后选择以下的一种:

1. 造成 $A+a_i$ 伤害。

2. $D$ 增长 $b_i$。

3. $A$ 增长 $c_i$。

求最大能造成的总伤害。

题解:倒着 DP。两维状态,一维是之前增加 D 能对之后攻击造成的贡献次数,一维是增加 A 的贡献。复杂度 $O(n^4)$。

zerol:kblack 送我的题。

Problem J

Solved by zerol & kblack. 04:07 (+3)

题意:求 $\max_{p_i} \min_j \{ \sum_{i=1}^n p_ilcp(s_i, s_j) \}$ 其中 $\sum p_i = 1$,也就是说求一个选后缀的概率分布,使得和某一个后缀的 lcp 的期望的最小值最大。

题解:考虑后缀树,每个后缀结点往根的路径上贡献 $p_i$,然后使得后缀结点到根的路径上的和的最小值最大。后缀自动机建后缀树后树形 dp,求出每棵子树的答案。如果遇到后缀结点直接归 0,否则就是子节点的调和平均,往父节点贡献时加上边权。

zerol: 后缀自动机建后缀树没反向插入(还好被 kblack 看出来了),问题是还能过样例。

Problem L

Solved by zerol. 01:14 (+3)

题意:有两种车站,可以花费代价 1 去同一种车站,也可以花费 1 走一条边,问每个点到所有其他点的最短路之和。(保证两两可达)

题解:最大距离不超过 3,并忽略所有同一种车站之间的边。考虑每一个点,到同一种的其他车站代价都是 1。另一种的代价计算然后分两种情况

这个点有度:那么与这个点直接相邻的点代价为 1,否则为 2。

这个点没度:那么另一侧有度的点代价为 2,否则为 3。

zerol:反复确认题意才读懂的。

kblack: 罚时都是我的,自闭签到,为了不女装(逃

One,Two,Three,AK

Replay

oxx1108:

dreamcloud:

Xiejiadong:

  • 抱着 oxx 的大腿,捡了块金牌。
  • 西工大真荒凉。女生真少,真是个学习的好地方(并不觉得)。
  • 这个H是真的读不懂啊。
  • 打题两小时,划水三小时,最后直接躺地上了。

Problem C

Solved by oxx1108. 04:18 (+2)

题意:问一个长度为 200 的 01 串在长为 $10^9$ 的 $|\mu(i)|$ 的数列中第一次出现的位置,或者不存在。

题解:考虑素数的平方的倍数一定是 0,计算答案模 4, 9, 25, 49 可能的余数,再对于可行的枚举倍数。特判掉0特别多的就没剩多少了。

Problem D

Solved by dreamcloud. 00:10 (+)

Problem F

Solved by oxx1108. 01:21 (+1)

题意:求三维空间一个点到另一个点不经过球的最小距离。

题解:两点和球心画出三角形余弦定理算一下角度就行。

Problem G

Unsolved. (-1)

最后半小时没事干了,随便写写,似乎算法对了?

Problem I

Solved by Xiejiadong & oxx1108. 01:54 (+)

显然dp。

正着推不出来,那就倒着推。

$dp[i][j][k]$表示到$i$回合,已经攻击了$j$次,攻击回合的和为$k$的最大攻击和。

状态数量已经接近$10^8$,$O(1)$转移,要注意常数的优化。

Problem L

Solved by Xiejiadong. 00:34 (+1)

大力讨论。

1.如果这个点的度数为0

  • 对面度数为0的点,需要三步
  • 对面度数不为0的点,需要两步
  • 自己这边除自己以外,需要一步

2.如果这个点的度数不为0

  • 对面直接相连的点,需要一步
  • 对面不直接相连的点,需要两步
  • 自己这边除自己以外,需要一步

不过要注意,给的边,可能是同一边的点,巨坑