| Rank | Solved | A | B | C | D | E | F | G | H | I | J | k | L | M |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 258/1945 | 9/13 | Ø | O | O | O | O | Ø | O | Ø | O | O | O | . | O |
O: 当场通过
Ø: 赛后通过
.: 尚未通过
A Who is better?
upsolved by Feynman1999
Feynman1999’s solution
斐波那契博弈结论题 + 中国剩余定理(模数不互质)板子
B so easy
solved by viscaria
viscaria’s solution
C Buy Watermelon
solved by viscaria
viscaria’s solution
D Carneginon
solved by viscaria
viscaria’s solution
E XKC’s basketball team
solved by viscaria
viscaria’s solution
F Little M’s attack plan
upsolved by chelly
chelly’s solution
先考虑能否解决“以点u为根的子树中,深度差<=k的所有点的权值和”。这个可以在对树dfs的过程中,用BIT维护一个权值数组,那么对于一个询问的答案就是开始遍历u前的区间和与遍历完u后的区间和的差。时间复杂度O(nlogn)O(nlogn)O(nlogn)。
但是原问题不止考虑子树。注意到qqq和kkk都很小,所以对于一个询问(v,k)(v,k)(v,k)可以拆成O(k)O(k)O(k)个询问子树的问题。于是就解决了。
G Colorful String
solved by chelly
chelly’s solution
H function
upsolved by Feynman1999
Feynman1999’s solution
注意函数f(x)f(x)f(x)虽然不满足积性,但是也有很好的性质。即f(xy)=f(x)+f(y)f(xy) = f(x)+f(y)f(xy)=f(x)+f(y),这样所求式子可以化简为∑i=1ng(i)\sum_{i=1}^{n}g(i)∑i=1ng(i), 其中g(i)=(n−i+1)∗f(i)g(i) = (n-i+1)*f(i)g(i)=(n−i+1)∗f(i)。
nnn是1e10又不是积性函数,考虑如何EES:
dfs参数要有f(当前数k的f(k)值),k(当前数)
- 对于最大质因子指数为1的贡献:∑p[n−kpi+1][f(k)+f(p)]=[f(k)+1]∗[∑(n+1)∗1−k∗∑(pi)]\sum_{p}[n-kp_i+1][f(k)+f(p)]=[f(k)+1]*[\sum(n+1)*1-k*\sum(p_i)]∑p[n−kpi+1][f(k)+f(p)]=[f(k)+1]∗[∑(n+1)∗1−k∗∑(pi)],
- 对于最大质因子指数>1的数(e.g. i)的贡献:直接就是g(i) = f(i)*(n-i+1)。其中iii和f(i)f(i)f(i)边乘边维护即可(*p和+1)
I query
solved by Feynman1999
Feynman1999’s solution
考虑1~n中所有pair是陪数关系的是nlogn级别的,预处理出来,问题变为二维数点问题,树状数组搞一下(求右下角的点,按x重大到小,y从小到大排序)询问1-y 权值树状数组
J Random Access Iterator
solved by chelly
chelly’s solution
K Center
solved by viscaria
viscaria’s solution
L Dice
unsolved
M Longest subsequence
solved by chelly
chelly’s solution
Dirty Replay
- C题:
- B题:被卡常了,TLE了一发
- I题:
- K题:
- A题:
- M题:nx[i][j]应该表示s[i..n]s[i..n]s[i..n]中第一个字符jjj的出现位置(不包括i),第一发写成了包括i的,WA了一发。
本文详细解析了多项编程竞赛题目,涵盖了斐波那契博弈、中国剩余定理、树的深度优先搜索、区间和维护、函数性质分析等高级算法与数据结构应用。作者分享了解题思路,提供了解决方案,并讨论了常见错误与优化技巧。
215

被折叠的 条评论
为什么被折叠?



