多校 A 层冲刺 NOIP2024 模拟赛 03
T1 五彩斑斓(colorful)
签到题
直接暴力枚举是 \(O(n^4)\) ,考虑使用 \(bitset\) 优化,对每个点开个 \(bitset\),预处理它所在一行它及它之前相同颜色的位置,这样就只用枚举另一个点所在列,时间复杂度为 \(O(n^3+\frac{n^4}{w})\)。
T2 错峰旅行(travel)
签到题
城市编号是没用的,根据乘法原理答案显然是 \(\prod cnt_{不拥挤城市的个数}\) ,而题目给的操作等于是区间减,但值域比较大,却只需查询一次,考虑差分离散化即可,时间复杂度瓶颈在排序为 \(O(nlogn)\)。
T3 线段树(segment)
签到题?
如果能想到区间 \(DP\) 那确实挺签的
注意到一个性质,对于一个查询 \(x,y\),在线段树上的所有被它完全包含的区间,它是不会进入这个区间的即不会产生贡献,那么对于 DP 而言就很好转移了。设计状态 \(f_{l,r}\) 表示线段树上存在区间 \([l,r]\) ,所有询问在这个区间内分裂的最少次数,初始状态 \(0\to f_{i,i}\),答案为 \(f_{1,n}+q\)。考虑转移,当转移枚举断点时(即区间变为 \([l,mid],[mid+1,r]\))根据上述性质得出会分裂的询问满足 \((L\in[l+1,mid]\ ∩\ R\in[mid+1,n])\ ∪\ (L\in[1,mid]\ ∩\ R\in[mid+1,r-1])\),这个东西直接二维前缀和维护即可。
时间复杂度瓶颈在 \(DP\) 为 \(O(n^3)\)。
T4 量子隧穿问题(experiment)
trick(计数转概率),计数题,DP,概率,基环树
每个点只有一条出边,该图显然是一个(内向)基环树森林。
显然能影响 \(n\) 号点是否有猫的点都与 \(n\) 号点在同一颗基环树,下面只会考虑\(n\) 号点所在基环树上的情况。
那么对于基环树的题往往会先考虑它的弱化版本即一颗树该如何求解。先引入一个 trick:合法方案=合法概率×总方案数。那就是说只需要维护每个点出现猫的该列车就行了,这个东西直接概率 \(DP\) 从 \(1\) 号点递推到 \(n\) 号点即可。设计状态 \(p_i\) 为 \(i\) 号点当前出现猫的概率( . C ?
分别为 0 1 0.5
),初始状态就为每个符号所对应的概率,转移是双向的 \(记\ x=p_i,y=p_{b_i};转移\ p_i=xy,p_{b_i}=x(1-y)+y\)。最终答案就为 \(p_n2^{cnt_{问号个数}}\)
考虑扩展到基环树,如果直接做的话肯定是不行的,因为转移是双向的,最后他还会被另一个在环上的点更新,由于时间的先后顺序另外一个点与 \(n\) 号点都是在某一个相同的点转移而来的,但是由于算的是概率就可能出现那个相同的点对另一个点来说是存在猫的,而对 \(n\) 号点来说是不存在猫的。以一言以蔽之,环形 \(DP\) 具有后效性。使用环形 \(DP\) 常见手段,断环成链,然后枚举断点处两端的 \(4\) 种状态即可,对于本题而言这个断点是有所讲究的,只能考虑狗最早到环上的边,不然由于时间先后顺序 \(DP\) 依旧具有后效性。
时间复杂度呈线性,瓶颈取决于如何判断断点的位置,使用并查集判断的复杂为 \(O(Tn\alpha(n))\)。