Rank | Solved | A | B | C | D | E | F | G | H | I | J | k |
---|---|---|---|---|---|---|---|---|---|---|---|---|
42/697 | 6/11 | O | Ø | O | O | Ø | Ø | Ø | . | O | O | O |
O
: 当场通过
Ø
: 赛后通过
.
: 尚未通过
A meeting
solved by viscaria&chelly
chelly’s solution
B xor
upsolved by chelly
chelly’s solution
这里主要是线性基求交,这里说下线性空间怎么求交。
设222组基{a1,a2,...,an}\{ a_1,a_2,...,a_n \}{a1,a2,...,an}和{b1,b2,...,bm}\{ b_1,b_2,...,b_m \}{b1,b2,...,bm}。
暴力的想法:我们找出所有满足k1ax1+k2ax2+...+kpaxp=k1′by1+k2′by2+...+kq′bxqk_1a_{x_1}+k_2a_{x_2}+...+k_pa_{x_p}=k'_1b_{y_1}+k'_2b_{y_2}+...+k'_qb_{x_q}k1ax1+k2ax2+...+kpaxp=k1′by1+k2′by2+...+kq′bxq的k1ax1+k2ax2+...+kpaxpk_1a_{x_1}+k_2a_{x_2}+...+k_pa_{x_p}k1ax1+k2ax2+...+kpaxp,将它们丢到交空间中,对它们求一组基就是答案。
我们构造一个基allallall,初始为{a1,a2,...,an}\{ a_1,a_2,...,a_n \}{a1,a2,...,an}
依次考察b1,b2,b3,...,bmb_1,b_2,b_3,...,b_mb1,b2,b3,...,bm
- 对于bib_ibi,若其不能被allallall线性表示,那么将其加入allallall,于是allallall变成了{a1,a2,...,an,bj,...,bi}\{a_1,a_2,...,a_n,b_j,...,b_i\}{a1,a2,...,an,bj,...,bi}
- 对于bib_ibi,若其能被allallall线性表示,那么可以求出它的表示:k1ax1+k2ax2+...+kpaxp+kp+1by1+kp+2by2+...=bik_1a_{x_1}+k_2a_{x_2}+...+k_pa_{x_p}+k_{p+1}b_{y_1}+k_{p+2}b_{y_2}+...=b_ik1ax1+k2ax2+...+kpaxp+kp+1by1+kp+2by2+...=bi。移项之后,左边变成只有aaa的,右边变成只有bbb的,我们就可以把这个k1ax1+k2ax2+...+kpaxpk_1a_{x_1}+k_2a_{x_2}+...+k_pa_{x_p}k1ax1+k2ax2+...+kpaxp加入到交空间中。
对交空间高斯消元求基即可。
C sequence
solved by chelly
chelly’s solution
D triples I
solved by chelly&viscaria&vegetablest
chelly’s solution
E triples II
upsolved by viscaria
viscaria’s solution
F merge
upsolved by chelly
chelly’s solution
注意到l=1,所以用merge-split treap直接暴力维护即可。因为每次额外的合并操作总会使得段数增加,而段数最多就nnn段,所以时间复杂度均摊是O((n+q)logn)O((n+q)logn)O((n+q)logn)。若l不是1,那么时间复杂度就不对了,可能会带来段数的额外减少。
G tree
upsolved by chelly
利用树hash来表示一个树。注意到不超过12个点的本质不同的有根树数量不是很多,可以直接在原树上树dp。
dp[u][i][hash]dp[u][i][hash]dp[u][i][hash]表示以uuu为根的子树中,以uuu为根且大小为iii的哈希值为hashhashhash的子树的个数。转移类似树上背包的转移。
对于每个询问,可以枚举根,得到所有可能的有根树,然后把dp值加起来即可。
H RNGs
unsolved
I string
solved by chelly
chelly’s solution
J free
solved by viscaria&chelly
chelly’s solution
K number
solved by chelly
chelly’s solution
Dirty Replay
- J题超时了一发,原因是没有正确重载priority_queue的比较符
- C题WA了一发,T了一发。WA的原因是并查集合并的时候忘记合并了并查集(
大雾。T的原因是线段树带了个logloglog,所以T了。(可是明明别人log就不超时 TVT)