解题报告【ACM ICPC 2017–2018, NEERC – Northern Eurasia Finals】
作者:互联网
前言
和 dX、cmll vp 的,发现这场其实我原本做过一些题,但很巧的是我都没开到这些题,且我根本不记得了,快结束时才发现。
介于有些题我做过并记录过,就不写了。
赛时通过:
A | B | C | D | E | F | G | H | I | J | K | L | M | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
by | M | M | C | D | M | M | D | C | D |
A
题目给的限制既保证了圆不交又保证了圆与 \(x\) 轴相切,那么毛咕咕一下对于 \(x\) 轴上任意一点,它上方的圆的数量并不多,所以我们直接大力维护,建一个动态开点线段树,维护每个区间的圆有哪些,用 set 维护就好了。
时间复杂度 \(\mathcal O(n \log ^ 2 n)\)。
B
恶心题,但是很良心。
虽然我们要手动模拟一个立方体的平面拆开情况,但是注意到出题人很良心地给了一个 Note,所以我们只要枚举 Note 中的 11 种情况就好了,然后交换长宽高多枚举几下,如果队友一起做可能更快。
E
签到暴力题,没啥好说的。
F
哇这题是真的恶心啊。但模块化写起来感觉还行。
发现答案不超过 \(1e5\),那么考虑模拟,具体的,特判第一次放块,发现后面每次放块最大可以使 \(x\) 和 \(y\) 一个加 \(n\) 一个加 \(n - 1\),贪心地想,每次让 \(x\) 和 \(y\) 距离更大的那个加 \(n\),另一个加 \(n - 1\),这一定是最优的,如果两者差距过于悬殊,即一个点已经到了而另一个点没到,那么特判过程中的一种情况,然后后面直接给小的坐标不断 \(+n\) 即可。
特判最后一次摆法,即你需要实现:
..o..
.xo..
..ooo
..ooo
.xo..
..o..
.ooo.
...ox
...o.
...o.
...ox
.ooo.
这种东西,看起来就很恶心啊。
K
考虑 \(n\) 很小的情况,直接 \(2 ^ n\) 枚举
考虑 \(n\) 很大的情况,由于 \(a_i\) 是 \(2 ^ n\) 级别的,而 \(\sum a_i < q\)
那么有效的 \(a_1\) 很少,那么枚举有效的序列 \(a_i\),判断是否能映射成 \(b_i\),得到 \(r\) 后,将 \(s /= r\),然后就类似于二进制 check 搞搞就好了
这个 \(n\) 很小大概是 \(\mathcal O(2 ^ {\frac {64} 3})\) 级别。
标签:Eurasia,Northern,..,...,ooo,特判,ACM,枚举,mathcal 来源: https://www.cnblogs.com/RedreamMer/p/16483396.html