牛客网暑期ACM多校训练营(第九场)

RankSolvedABCDEFGHIJ
68/2452/10OØØØ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的限制,那么显然有
1432593-20180830204651023-1714048965.png
其中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题切了……

转载于:https://www.cnblogs.com/Amadeus/p/9544714.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值