五一集训Day1
A
求(G^npmod {x^t}),(nle 1e7 ,G=sum_{i=0}^ka_ix^i,kle 100,t*kle 5e7)
暴力lnexp有40
考虑((G^{n+1})'),
[(G^{n+1})' = nG^nG' = (G^n)'G
]
首先(G^n[x^0]=G[x^0]^n)
(对于G^n[x^i]),考虑与(G[x^j])相乘。设(G^n=sum_{ige 0}c_ix^i,G=sum_{ige 0 }d_ix^i)
则
[forall ileq t+k , c_id_1+c_{i-1}d_2+...+kc_{i-k+1}d_k = (i+1)q_{i+1}c_0+ic_id_1+...+(i-k+1)c_{i-k+1}d_k
]
这样每求出一个数就可以把它的贡献加到最多k个等式中,总复杂度(O(tk))
B
比赛时只考虑了一半(还想到预处理我错误的做法),最后对拍出错以为是std错了没管,结果爆零了。对拍要早点写,多思考程序哪里不对。
考虑到0和1是等价的,我们只考虑0的情况,最后乘以2。
考虑枚举结束的位置(i)((ige n)),因为会影响概率。有一个显然的条件是(0)不能在(a_k)前结束(1可以),并且每种情况的概率为(frac{1}{2^{i-1}}),最后一个被钦定了。(注意此处边界情况)
然后考虑在每种情况下如何计算答案,显然是直接乘上方案数。考虑分配了k个0之后其他0或者1的分配情况,1填空。用组合数算一下即可。
最后对于每种k预处理一下,总复杂度(nsqrt n)(考试的时候也没看懂(sum k le 2e5)的意义...这就表示k最多有(sqrt n)种)