Rank | Solved | A | B | C | D | E | F | G | H | I | J | k | L |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
26/929 | 7/12 | . | O | . | . | O | Ø | . | O | O | O | O | O |
O
: 当场通过
Ø
: 赛后通过
.
: 尚未通过
A Another Chess Problem
unsolved
B Beauty Of Unimodal Sequence
solved by chelly&viscaria
chelly’s solution
从后往前依次求出
d
p
[
i
]
[
0
]
dp[i][0]
dp[i][0]表示以
i
i
i开头的"“形状序列的长度,
d
p
[
i
]
[
1
]
dp[i][1]
dp[i][1]表示以
i
i
i开头的”^"形状序列的长度。
然后就可以贪心去依次确定每个位置的方式得到最小字典序方案和最大字典序方案。
时间复杂度
O
(
n
l
o
g
n
)
O(nlogn)
O(nlogn)。
C Coefficient
unsolved
D Double Tree
unsovled
E Everything Is Generated In Equal Probability
solved by viscaria&Feynman1999
Feynman1999’s solution
F Fantastic Magic Cube
upsolved by chelly
chelly’s solution
结果是定值,所以考虑如何算出贡献即可。设 f [ x ] f[x] f[x]表示权值为 x x x的点的个数,那么如果知道了 f [ ] f[] f[],答案就能很容易算出来。可以通过 F W T FWT FWT算 f [ ] f[] f[]。
G Game
unsolved
H Harmonious Army
solved by chelly
chelly’s solution
经典最小割套路题。
I I Love Palindrome String
solved by chelly
chelly’s solution
本质不同的回文子串个数是 O ( n ) O(n) O(n)的。判断一个回文串是否是good string可以通过字符串哈希在 O ( 1 ) O(1) O(1)的时间内解决。所以问题就变成了求出所有的本质不同的回文子串以及它出现的次数,建一个回文树即可。
时间复杂度 O ( n ) O(n) O(n)。
upsolved by chelly
chelly’s solution
将字符串reverse一下,一个长度为 p p p回文串是合法的当且仅当他拥有长度为 ( p + 1 ) / 2 (p+1)/2 (p+1)/2的回文后缀。建立出回文自动机,根据 f a i l fail fail指针建立 f a i l fail fail树,在树上 d f s dfs dfs即可。
J Just Skip The Problem
solved by viscaria
viscaria’s solution
K Keen On Everything But Triangle
solved by viscaria&chelly
chelly’s solution
用主席树求出区间前50大的数字,然后暴力枚举即可。
时间复杂度
O
(
50
n
l
o
g
n
)
O(50nlogn)
O(50nlogn)。
L Longest Subarray
solved by chelly
chelly’s solution
考虑从小到大枚举
j
j
j作为区间右端点,计算最远的一个
i
i
i,使得
[
i
,
j
]
[i,j]
[i,j]是以
j
j
j为右端点的最长区间。
对于之前出现的每个数字,一定对应一个区间
[
l
,
r
]
[l,r]
[l,r],即
i
i
i不能出现在这个区间内。于是我们可以用一个线段树来维护,一开始每个位置都是0,对于不合法的区间
[
l
,
r
]
[l,r]
[l,r],我们只需要给
[
l
,
r
]
[l,r]
[l,r]都加上
1
1
1。对于询问就是查询最左边的
0
0
0的位置,这样只需要维护区间
m
i
n
min
min即可。
时间复杂度 O ( n l o g n ) O(nlogn) O(nlogn)。
Dirty Replay
- K题:在主席树上取前k大的数字的时候,没有考虑到一个数字出现多次的情况。
- E题:数组开小了,WA了一发。
- I题:回文树板子中,应该是-‘a’,而不是-‘0’