Rank | Solved | A | B | C | D | E | F | G | H | I |
---|---|---|---|---|---|---|---|---|---|---|
497/1882 | 3/ 9 | . | O | Ø | Ø | O | Ø | O | Ø | Ø |
O
: 当场通过
Ø
: 赛后通过
.
: 尚未通过
A Enju With math problem
unsolved
B Fire-Fighting Hero
solved by chelly
chelly’s solution
C Hello 2019
upsolved by chelly
chelly’s solution
将字符串倒过来,问题就变成了要201920192019,但是不要201820182018。若只有一个询问,就直接dp就可以了,对于多个询问,可以用线段树维护矩阵乘法。
D Interesting Series
upsolved by chelly
若Fn=anF_n=a^nFn=an,那么ans(k)=[xk]∏i=1n(asix+1)ans(k)=[x_k]\prod_{i=1}^n(a^{s_i}x+1)ans(k)=[xk]∏i=1n(asix+1),现在进行一些数学变换就能得到最后的结果。
至于那个多项式的求法,用分治FFT即可。
E Magic Master
solved by viscaria&chelly
chelly’s solution
问题的关键是给定mmm,求f(n,k)f(n,k)f(n,k),表示nnn个人的约瑟夫环,隔mmm个出队一个,kkk是第几个出队的。
类比于经典的约瑟夫环的做法,求f(n,k)f(n,k)f(n,k)的时候可以整体考虑这轮出去的情况。如下图:
时间复杂度大概也是O(logmm−1n)=O(lnnlnmm−1)O(\log_{\frac{m}{m-1}}n)=O(\frac{\ln n}{\ln \frac{m}{m-1}})O(logm−1mn)=O(lnm−1mlnn)的。
upd:
当m≥2m \geq 2m≥2时,1m<lnm−ln(m−1)<1m−1\frac{1}{m} <\ln m- \ln (m-1) < \frac{1}{m-1}m1<lnm−ln(m−1)<m−11,所以复杂度实际上是O(mlnn)O(m\ln n)O(mlnn)的。
F Megumi With String
upsolved by chelly
很容易求出每个本质不同的子串对答案的贡献。
只需要每次在线地用SAM维护新出现地本质不同地字符串即可。对于第iii次加入的字符,SAMSAMSAM上表示新产生的本质不同字符串的结点一定满足endpos={i}endpos=\{i\}endpos={i},满足这个条件的点只有lastlastlast结点。
G Pangu Separates Heaven and Earth
solved by viscaria
viscaria’s solution
签到
H The Nth Item
upsolved by Feynman1999
Feynman1999’s solution
I Yukino With Subinterval
upsolved by chelly
chelly’s solution
设b[i]=(a[i]==a[i−1])?a[i]:0b[i]=(a[i]==a[i-1])?a[i]:0b[i]=(a[i]==a[i−1])?a[i]:0,那么对于一个询问(l,r,x,y)(l,r,x,y)(l,r,x,y),就相当于找[l+1,r][l+1,r][l+1,r]之间值域在[x,y][x,y][x,y]内的有多少个数字,lll的位置特殊考虑。
这就是个经典的待修改主席树问题,BIT套权值线段树解决。
但这里内存和时间卡的都很紧,需要扣好常数和内存。
upsolved by chelly
chelly’s solution
也可以采取常数比较小的cdqcdqcdq分治,对于询问可以拆成前缀形式。时间作为第一维,下标作为第二维,权值作为第三维,cdqcdqcdq分治套BITBITBIT解决。
Dirty Replay
- B题:算英雄的答案前,加入了超级源,导致最短路跑错了。WA了2发。
- E题:没有处理好m>n的情况
- H题:
- C题:转移矩阵构造错了,WA了一发
- D题:没开long double,WA了3发
- F题:补题的时候没看见n≤998244353n \leq 998244353n≤998244353,RE了许多发。浅谈睡眠充足的重要性。
- I题:被卡了空间和时间