Rank | Solved | A | B | C | D | E | F | G | H | I | J |
---|---|---|---|---|---|---|---|---|---|---|---|
68/245 | 2/10 | O | Ø | Ø | Ø | O | Ø | Ø | Ø | Ø | . |
O
: 当场通过
Ø
: 赛后通过
.
: 尚未通过
A Circulant Matrix
solved by chelly
chelly's solution
直接FWT
B Enumeration not optimization
upsolved by chelly
chelly's solution
设\(f(S,i)\)表示以集合S中的点连出一个生成树,i为根的方案数,\(g(S,i)\)表示以集合S中的点连出一个生成树,i为根,所有情况下的所有节点的深度和
f和g可以通过枚举子集、合并子集来转移
考虑枚举每一条边(x,y,w),算贡献,即(x,y)在多少个有根生成树中出现
因为在有根树中,边都是有向的,所以x->y和y->x都要分别计数,我们不妨来计数x->y
我们枚举x包含的点集S,那么y包含的点集就是U-S,对答案的贡献是\(g(S,x)*f(U-S,y)\)
因为我们需要求的是以S中任意一个点为根,x在其中的深度和,这个东西可以反过来考虑,就相当于以x为根的所有点的深度和
时间复杂度\(O(n^23^n)\)
C Gambling
upsolved by chelly&ch
chelly's solution
首先可以列出一张表\(g(i,j)\),表示A已经赢了i场,B已经赢了j场的情况下,我已经有的利润,同理\(f(i,j)\)表示下一局应该下的钱数
显然有\(g(i,j)=\frac{g(i,j+1)+g(i+1,j)}{2}\),\(f(i,j)\)可以通过差分得到,于是我们可以通过\(O(n^2)\)得到这个表,现在需要优化
进一步发现\(f(i,j)=\frac{f(i,j+1)+f(i+1,j)}{2}\),可以把这个\(frac{1}{2}\)提出来,然后f(i,j)的值就可以理解为:从(n-1,n-1)走到(i,j)的方案数 除以 2^(坐标差)
这个就可以写成一个式子了,于是每个f(i,j)都可以写成一个组合数,问题就解决了
D The number of circuits
upsolved by chelly
chelly's solution
考虑利用BEST theorem求解欧拉回路的个数,我们容易发现对于这个图,主要是\(t_w(G)\)不好求,BEST theorem后面的那一项一定是\(((k-1)!)^n\)。
求解\(t_w(G)\),如果用Matrix-Tree定理,那么显然复杂度不够。
注意到k很小,所以这个是可以用状态压缩+矩阵乘法做的,所以对于固定的k,\(t_w(n)\)一定是个线性递推,我们可以用Matrix-tree定理暴力跑出前面若干项,然后丢到BM里
最后不要忘记乘上\(((k-1)!)^n\)
E Music Game
solved by chelly
chelly's solution
对期望dp一下,时间复杂度\(O(n^2)\)
upsolved by chelly
chelly's solution
考虑对于每个位置维护\(x^m\),表示到当前位置为止的连续正确的得分期望,那么对于下个位置,对答案的额外贡献就是\((x+1)^m-x^m\),这个需要维护每一个\(x^0,x^1,...,x^m\),难以维护。考虑维护下降幂的贡献,最后再转成\(x^m\)。注意任何期望长度的0次下降幂总是1。时间复杂度\(O(nm)\)。
F Typing practice
upsolved by chelly
chelly's solution
建出Trie图,然后从所有danger节点反向跑BFS,得到每个状态点到单词节点的最短路径。然后询问串在Trie图上走就行了。
G Longest Common Subsequence
upsolved by chelly
chelly's solution
把同一个数字在4个序列中出现的位置抠出来形成一个四维空间的点
题目就是需要找一个最长上升子序列,这个我们只需要对一维排序,另外三维用kdtree维护最大的dp值即可
H Prefix Sum
upsolved by chelly
chelly's solution
比较暴力的方法是可以对操作分块,可以通过这个题。
题解给了很妙的做法。
对于询问x,需要回答的是\(\sum_{1 \leq i \leq x} \binom{x-i+k}{k}a[0][i]\),其中有x和j两个变量,我们考虑把其拆分
\(ans=\sum_{1 \leq i \leq x} \sum_{0 \leq j \leq k} \binom{x}{j} \binom{k-i}{k-j}a[0][i]\)
我们可以维护k+1个树状数组即可,注意这里需要定义负数意义下的组合数。
时间复杂度\(O(m \log n k)\)
I Juggernaut
upsolved by chelly
chelly's solution
考虑如果没有异或为0的限制,那么显然有
其中a表示对于行,走a步走回同一个横坐标,b表示对于列,走b步走回同一个横坐标,设\(l=lcm(a,b)\)
那么\(\frac{l}{a}\)就表示对于同一列,一个等价类出现了多少次,\(\frac[l}{b}\)就表示对于同一行,一个等价类出现了多少次
那么\(\frac{n}{a} \times \frac{m}{\frac{l}{a}}\)的矩阵就是个单位矩阵,\(\frac{n}{\frac{l}{b}} \times \frac{m}{b}\)的矩阵也是个单位矩阵
现在考虑有异或为0的限制,这意味着原本\(\frac{nm}{l}\)个自由元会少掉一些
- 若\(\frac{l}{a}\)为奇数,\(\frac{l}{b}\)为偶数,那么对于平铺矩阵的最后一列的那些自由元,将不再变成自由元,自由元数量减少\(\frac{n}{a}\)
- 若\(\frac{l}{b}\)为奇数,\(\frac{l}{a}\)为偶数,那么对于平铺矩阵的最后一行的那些自由元,将不再变成自由元,自由元数量减少\(\frac{m}{b}\)
- 若\(\frac{l}{a}\)为奇数,\(\frac{l}{b}\)为奇数,那么对于平铺矩阵的最后一行最后一列的自由元,将不再变成自由元,自由元数量建设好\(\frac{n}{a}+\frac{m}{b}-1\)
注意此题的模数小于1e9,所以可以对\(nmp\)取模,最后除以\(nm\),要用__int128
J Maze
unsolved
Replay
这场比赛由chelly打的。
首先chelly有点神志不清,大约画了1h才把E题切掉。然后就一直卡F了……到结束之前才发现A题是个水题,就把A题切了……