用户工具

站点工具


2020-2021:teams:mian:nowcoder_training:2020_multi-university_training_contest_9

这是本文档旧的修订版!


2020牛客暑期多校训练营(第八场)

Results

Summary

  • Solved 7 out of 12 problems
  • Rank 32/1041 in official records
  • Solved 8 out of 12 afterwards
#Who=PenaltyABCDEFGHIJKLDirt
3大吉大利,今晚吃 mian();7928+
00:09
+8
04:55
+
00:49
+
00:49
+
00:14
+1
03:13
+2
01:39
61%
11/18

Member Distribution

Solved A B C D E F G H I J K L
Pantw O
Withinlover
Gary

(√ for solved, O for upsolved, - for tried but not solved)


Solutions

A

print(eval(input().replace('(','**(')))

B

C

D

E

考虑 $x, y$ 的质因数分解 $x = p_1^{u_1}p_2^{u_2}\dots p_n^{u_n}, y = p_1^{v_1}p_2^{v_2}\dots p_n^{v_n}$。

再回过头看答案的式子,

$$ \large\prod\limits_{i=a}^{b}\prod\limits_{j=c}^{d}\gcd(x^i,y^j)\\ \large=\prod\limits_{i=a}^{b}\prod\limits_{j=c}^{d}\gcd((p_1^{u_1}p_2^{u_2}\dots p_n^{u_n})^i,(p_1^{v_1}p_2^{v_2}\dots p_n^{v_n})^j)\\ \large=\prod\limits_{i=a}^{b}\prod\limits_{j=c}^{d}\prod\limits_{k=1}^{n}p_k^{\min(i\cdot u_k, j\cdot v_k)}\\ \large=\prod\limits_{k=1}^{n}\prod\limits_{i=a}^{b}\prod\limits_{j=c}^{d}p_k^{\min(i\cdot u_k, j\cdot v_k)}\\ \large=\prod\limits_{k=1}^{n}p_k^{\sum\limits_{i=a}^{b}\sum\limits_{j=c}^{d}\min(i\cdot u_k, j\cdot v_k)}\\ $$

考虑对每个质因数 $p_k$ 求 $$\large\sum\limits_{i=a}^{b}\sum\limits_{j=c}^{d}\min(i\cdot u_k, j\cdot v_k)$$

容易发现 $i$ 固定后 $\sum\limits_{j=c}^{d}\min(i\cdot u_k, j\cdot v_k)$ 至多由一段等差数列和一段常数列组成。

分界点是 $\lfloor\cfrac{i\cdot u_k}{v_k}\rfloor$。

那么我们枚举 $p_k$,再枚举 $i$ 即可。

F

G

这个题很有趣,提示我们不要乱写 Simpson,不是什么时候收敛都好的。

题意是给一个凸多边形,可以绕原点转。给一条直线,问随机转之后直线截凸多边形弦长大于 $L$ 的概率。

容易发现我们可以把直线当成动的,凸包当成静的。重要的参数只有初始时原点到直线的距离,这个是决定直线轨迹的参数。

容易发现每次只要确定两端的边就可以确定这个弦变动的范围。

那么我们随机选个端点作为起点,然后扫一遍找到这个端点的弦对应的另一条边。把所有点对应的两个角度按凸包顺序分别装进两个数组里,扫的时候每次判断碰见的下一个端点属于哪一条边,然后就直接把边编号记一下,另开一个函数算这段角度区间对应的贡献。

H

I

J

这个题直接把所有 0 替换成 -1,然后对每条底边做一个左侧区域的前缀和,这个可以滚动数组维护。

然后就可以直接枚举两行作为上下底,用 bitset 直接维护中间可以作为墙的位置,然后连续段直接并起来处理。

具体处理方法:同一个块内,扫描并统计所有前缀和出现的次数。后面位置的前缀和如果是 S,那么 S-1, S, S+1 都可以与这个位置形成一个合法子矩阵,直接加进答案里就可以了。

K


Comments

ptw:

2020-2021/teams/mian/nowcoder_training/2020_multi-university_training_contest_9.1596897591.txt.gz · 最后更改: 2020/08/08 22:39 由 grapelemonade