如下图所示,有 2 × n 个仪器,中间的方块是仪器的主体,每个仪器可以充当接收器或者信号源;主体的左右两侧是两个接线点。 现在,我们将左端 2 × n 个接线点随机分成 n 组,每组各含两个点,并将右端 2 × n 个接线点同样随机分成 n 组。然后将每组的两个接线点用导线连接。

这样一来,我们就得到了一组封闭的信号线路。具体而言: 信号从任一信号源 i 出发,通过右侧接线点; 随后,信号通过与右侧接线点连接的导线到达另外一个仪器的左侧接线点,再经过仪器主体到达右侧接线点;此时,如果这个仪器是接收器,那么就视为接收到了信号(注意,接收到信号不会影响信号继续往后传递)。 这个过程持续进行,最终会形成若干个独立的循环。 现在,记 x 表示在所有接收器均能接收到信号的前提下, 2 × n 个仪器中作为信号源的最少数量。求解 x 的方差。 可以证明答案可以表示为一个不可约分数 (p/q) ,为了避免精度问题,请直接输出整数 (p × q^-1 mod M) 作为答案,其中 M = 998244353 , q^-1 是满足 q× q^-1 ≡ 1 ±odM 的整数。更具体地,你需要找到一个整数 x ∈ [0, M) 满足 x × q 对 M 取模等于 p ,您可以查看样例解释得到更具体的说明。 【提示】 本题中,如果您需要使用到除法的取模,即计算 (p× q^-1 mod M) 时, q^-1 需要使用公式 (q^M-2 mod M ) 得到。例如,计算 ((5/4) mod M) : arrayrll 4^-1 & = & (4^M-2 mod M) \ & = & 748683265 \ ((5/4) mod M) & = & 5 ×4^-1 mod M \ & = & 5 × 748683265 mod M \ & = & 748683266 array
每个测试文件均包含多组测试数据。第一行输入一个整数 T(1≤ T≤ 10^4) 代表数据组数,每组测试数据描述如下: 在一行上输入一个整数 n(1≤ n≤ 10^6) 代表仪器的数量。
对于每组测试数据,新起一行输出一个整数,表示 x 的方差对 M=998244353 取模后的结果。
3 1 2 3
0 887328314 168592380
考点:组合数学
数据规模 n ≤ 1e6 | 限制 1 秒 / 256MB | 标准输入输出
推荐方向:组合数学
用计数原理(加法/乘法原理)与组合数公式统计方案数。
思路框架(组合数学 通法 · 非本题专属)
实现要点:阶乘预处理 + 费马小定理求逆元可以在 O(1) 内算任意组合数。
复杂度:时间 O(n) 预处理 / O(1) 查询 | 空间 O(n)
该范式的通法易错点
对照本题
样例 1:输入 3 / 1 / 2 / 3 → 输出 0 / 887328314 / 168592380
对于第一组测试数据,左、右两侧各仅有一种配对方式,构成一个长度为 2 的循环。最小信号源数为 1 ,如下图所示。因此 E(X)=1 , D(X)=0 。
对于第二组测试数据,左侧有三种配对( \1,2,\3,4 ; \1,3,\2,4 ; \1,4,\2,3 ),右侧同样三种,合计 3×3=9 种等可能组合。计算可得,需要 1 个信号源的概率为 (6/9) (如下左图所示,为其中一种情况),需要 2 个信号源的概率为 (3/9) (如下右图所示,为其中一种情况),故:
E(X)=1×(2/3)+2×(1/3)=(4/3) ;
D(X)=E([X-E(X)]^2 )=(1-(4/3))^2×(2/3)+(2-(4/3))^2×(1/3)=(2/9) 。
我们能够找到, 887328314 × 9 = 7985954826 ,对 M 取模后恰好等于分子 2 ,所以 887328314 是需要输
解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2025年秋招-美团-技术岗-第一批笔试;2025年秋招-美团-算法策略端-第一批笔试;2025年秋招-美团-全栈岗-第一批笔试。