A. 666
应当注意到一个结论:
带着一个剪贴板进行删除操作是没有意义的。
可以转化为粘贴之后删除。
所以直接跑spfa求最短路。
注意到答案不超过48,所以边权超过48的边可以忽略。
B. 1234567
显然用莫比乌斯函数容斥。
发现答案为$\sum \limits_{i=1} \mu(i)\frac{n}{i^2}$
然后发现只会线性求。
打个表发现这个东西也可以除法分块,$\frac{n}{i^2}$在$n=10^18$的范围内只有一百多万个不同的取值。
所以杜教筛莫比乌斯函数前缀和,套个平方意义下的除法分块就行了。
做这道题确实对杜教筛有了更多的一些理解。
因为$\lfloor \frac{n}{i*k} \rfloor=\lfloor \frac{\lfloor \frac{n}{i} \rfloor}{k}\rfloor$这个式子,杜教筛就很强。
C. 椎
很有意思的一道题。
考虑最暴力的做法做这道题(在不会平衡树的前提下)。
按$key$值排序,每次取出$rand$值最大的一个点,并递归左右子树。
两个点$a$,$b$的$lca$显然对应着区间$[a,b]$内$rand$值最大的点。
而对于每个点,维护它左侧的单调栈和右侧的单调栈,那么该点的深度对应着两个单调栈中元素个数的和。