3.18模拟赛总结
Posted Flame♡
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3.18模拟赛总结相关的知识,希望对你有一定的参考价值。
文章真的有那么多人看么…看着阅读量有点莫名不胜惶恐,毕竟也没有人互动之类的XD
今天的题还是比较高知识门槛的吧
据说不能回家了qwq 有点不乐呢qwq
时间安排
7.30-8.30
先看了三道题 直观感觉
1数论 2.不知道,3.主席树大数据结构
感觉有点舒服,看到大数据结构莫名感觉一阵舒适,T3推了推感觉不急着写,准备先推推T1
8.30-9.10
写了写T1,还以为是正解后来发现不对(造数据两档部分分拍了一下),人麻了就跑路了
9.10-10.10
到了让人开心的数据结构环节! 先写了暴力,然后糊了两棵主席树,然后造了个数据验了验,发现大样例过不去有点慌,才想起来应该是爆栈问题,奈何我忘了调大栈的指令)
10.10-11.30
盯了一下T2,然后先写60后推优化,最后造了个数据两档拍了一下
题目分析
T1
很显然是贡献组合数次
最开始 愚蠢的我以为只要质因数分解然后随便写写就对了
但是复杂度过不去(而且质因数分解还写锅了qwq虽然最后查出来了吧)
打了两档暴力
T2
每一种连接方案的答案就是竞赛图的强连通分量数
所以dp出 f f f, g g g 分别表示 n n n 个点竞赛图的数目, n n n 个点的竞赛图且是一个强连通图的数
然后dp p p p 表示确定了 i i i个点形成的图的方案数
p [ i + j ] = ∑ p [ i ] ∗ g [ j ] ∗ C ( n − i , j ) p[i+j]=\\sum p[i]*g[j]*C(n-i,j) p[i+j]=∑p[i]∗g[j]∗C(n−i,j)
先考虑二维 p [ i , j ] p [i,j] p[i,j] 选了 i i i 个点形成 j j j 个联通块的方案数
最后累加 a n s ans ans ,然后除个 2 ( n − 1 ) n / 2 2^(n-1)n/2 2(n−1)n/2 就可以了
怎么优化呢?
考虑分别维护 p p p , r e s res res
p p p 的维护过程不变
r e s [ i + j ] = r e s [ i ] ∗ g [ j ] ∗ C ( n − i , j ) + p [ i ] ∗ g [ j ] ∗ C ( n − i , j ) res[i+j]=res[i]*g[j]*C(n-i,j)+p[i]*g[j]*C(n-i,j) res[i+j]=res[i]∗g[j]∗C(n−i,j)+p[i]∗g[j]∗C(n−i,j)
答案就是 r e s [ n ] res[n] res[n]
T3
暴力st表查lca,硬跳+桶维护就可以啦!
链的情况,当然是可爱的主席树!
考虑维护一下每个点上一次出现的位置
再搞个主席树维护一下某个数出现的次数
就做完辣!
离谱没判a==b
upstate
T1
就算脑到了crt也不知道怎么合并,估计题解的crt就是扩展Lucas吧(挠头)
想到了质因数分解,差距在于对于每个组合数递推去求,以及对于质因数分解+欧拉定理求逆元的混合使用
T2
我觉得我口胡的比题解直观(跑)
T3
树上莫队 属于是输的心服口服qwq
以上是关于3.18模拟赛总结的主要内容,如果未能解决你的问题,请参考以下文章