暑假模拟17

暑假模拟17

\(T_A\) 符号化方法初探

简单题,不讲

\(T_B\) 无标号 Sequence 构造

这题有点逆天。

先看正解:考虑给等式左右同乘一个 $ 1 \times n $ 的矩阵,矩阵随机生成,这样复杂度变为了 \(O(n^2)\) 。至于正确性,根据不知道什么定理,错误概率为 $ 998244353^{-1} $

赛时做法:一个错解。考虑我们只关注C矩阵每一行和每一列是否合法,稍微优化一下即可做到 $ O(n^2) $ 的优秀复杂度。不保证正确性。有办法hack这个做法,一个合法矩阵,如果,有两列的相同行数加和相同,那么交换这几个数就行。但再随机数据下概率很小,侥幸AC。

\(T_C\) 无标号 Multiset 构造

抽象。

注意到 k 很小,既然每个点要么选要么不选,每一列的状态数只有 $ 2^k $ 个,也并不多。要求图联通,重点是不同行之间的点联通。 \(n\) 很大,还是考虑从 \(k\) 入手,发现各行联通情况至于出现了哪些状态有关,与每种状态出现几次无关,爆搜每种状态选或不选,复杂度 $ O( 2^{ 2^k } ) $ ,并判断这种方案是否联通,统计合法方案种类数,开 $ 2^k $ 个桶表示选择其中 \(i\) 个状态的合法方案数。这里有 \(n\) 列,枚举只出现了 \(m\) 种状态,相当于 \(n\) 个小球放进 \(m\) 个盒子,每个盒子至少放一个的方案数,简单容斥一下即可。

发现 $ k=5 $ 时, $ 2^{32} $ 不可过,考虑打表,只要 \(2^k\) 个状态即可

int cnt1[3]={1,2,1},cnt2[5]={1,4,5,3,1},cnt3[9]={1,8,22,43,60,53,28,8,1};

int cnt4[17]={1,16,95,453,1595,4079,7775,11325,12838,11436,8008,4368,1820,560,120,16,1};

int cnt5[33]={1,32,406,4235,32705,191285,882931,3324441,10460210,27984080,64454950,128984430,
			225771000,347364500,471432800,565722120,601080310,565722715,471435600,347373600,
			225792840,129024480,64512240,28048800,10518300,3365856,906192,201376,35960,4960,496,32,1};

\(T_D\) 有限制的构造

简单DP,反思自己为什么没有场切。设 $ dp[i][j][k] $ 为前 \(i\) 个游戏,选择 \(k\) 个游戏,画面质量之和为 \(j\) 的最小不可玩度,转移显然。

赛时不敢想 \(T_D\) 正解,挺遗憾的。

posted @ 2024-08-13 06:59  Abnormal123  阅读(12)  评论(1编辑  收藏  举报