跳转至

Namomo Winter Camp 1

排名 当场过题数 至今过题数 总题数
2/68 10 10 15

A

solved by Bazoka13

题意

题解

B

solved by 2sozx

题意

签到

题解

签到

C

upsolved by 2sozx

题意

给定两个字符串集合 \(A,B\) ,每次可以选择 \(A, B\) 中各一个串 \(x, y\) 并将其拼接为 \(x + y\) 。如果存在 \(x_1, x_2 \in A, y_1, y_2 \in B\) 使得 \(x_1 + y_1 = x_2 + y_2\) 则称这四个串不是好的,问 \(A,B\) 中好串各有多少个。

\(\sum|x| \le 10 ^ 6\)

题解

此题直接乱搞,将式子移项得 \(x_1 - x_2 = y_2 - y_1 = s\)

\(A,B\) 中的串按照长度直接排序,并算出来每个串的 \(hash\),暴力计算 \(A\) 中能产生多少种 \(s\) ,在 \(B\) 中有多少个 \(s\) 能能产生作用,用 \(map\) 搞搞就可以。

D

upsolved by 2sozx

题意

开始有两圈人,

题解

E

solved by JJLeo

题意

签到

题解

签到

F

solved by Bazoka13

题意

签到

题解

签到

G

solved by Bazoka13

题意

签到

题解

签到

H

solved by 2sozx

题意

签到

题解

签到

I

solved by Bazoka13

题意

题解

J

upsolved by

题意

题解

K

solved by Bazoka13

题意

题解

L

solved by JJLeo

题意

签到

题解

签到

M

upsolved by JJLeo

题意

二维平面上有 \(n\) 个点,\(q\) 次询问,从 \((a,b)\) 向右发射两条斜率为 \(\pm \dfrac{1}{2}\) 的射线,对中间的点的下标求一个多项式哈希函数,强制在线。保证所有询问包含的点数 \(m\) 不超过 \(10^6\)。(\(1 \le n, q \le 10^5\)\(1 \le x_i, y_i \le 10^9\))

题解

斜率固定,可以进行坐标系变换,解如下方程: $$ \begin{pmatrix} 1&\dfrac{1}{2} \newline 1&-\dfrac{1}{2} \end{pmatrix} \begin{pmatrix} x' \newline y' \end{pmatrix} = \begin{pmatrix} x \newline y \end{pmatrix} $$ 解得: $$ \begin{pmatrix} x' \newline y' \end{pmatrix} = \begin{pmatrix} \dfrac{1}{2}x+y \newline \dfrac{1}{2}x-y \end{pmatrix} $$ 坐标变换后,等价于求直角坐标系下求 \(x' \ge a' , y' \ge b'\) 的点对,第一维用线段树,第二维每个节点开一个 set,查询时将对应的点的下标取出来进行合并即可,时间复杂度为 \(O(n \log ^2 n + m \log n)\),空间复杂度为 \(O(n \log n)\),因为总点数 \(m \le 10^6\),所以可以通过。

N

solved by JJLeo

题意

模板题

题解

模板题

O

upsolved by JJLeo

题意

二维平面上一个宇宙飞船,走折线依次到达给定的 \(n\) 个点,形过一个回路,每次飞船头会对准目前的方向向量。有水平的沿 \(x\) 负方向的阳光,设一个位置关于宇宙飞船圆心的极角为 \(\theta\),则该位置的单位路程所受的光强为 \(\max(0,\cos \theta)\)。你需要选择一个位置,使得全程你一直处于该位置受到的光强之和最小,注意随着飞船头方向的改变,你的位置也会随之相对变化。(\(2 \le n \le 10^5\))

题解

模拟退火失败

设所选位置关于飞船头的极角为 \(\theta\),则对于某一段路程,设该路程的方向向量为 \(\alpha\),路程长度为 \(x\),则该段路程所受光强为: $$ \begin{aligned} &\max(x\cos(\theta+\alpha), 0) \newline = & \begin{cases} x\cos(\theta+\alpha), & -\dfrac{\pi}{2} \le \theta+\alpha \le \dfrac{\pi}{2} \newline 0, &\text{otherwise} \end{cases} \newline = & \begin{cases} x\cos\theta\cos\alpha-x\sin\theta\sin\alpha, & -\dfrac{\pi}{2} \le \theta+\alpha \le \dfrac{\pi}{2} \newline 0, &\text{otherwise} \end{cases} \end{aligned} $$ 因此可以分别对 \(\cos \theta\)\(\sin \theta\) 前面的系数进行区间覆盖,考虑到最终函数是数个三角函数的叠加且为非负值,因此任意一个部分都是形似“上凸”的,最小值一定是在边界处取得,扫描一遍获取每个端点的值即可。

记录

总结

回到页面顶部