https://ac.nowcoder.com/acm/contest/15880?&headNav=www
随机n个n维01向量,询问这个n个向量线性无关的概率
考虑第一个向量,可以有$2^n-1$选择,你不可以选择全为0的向量
然后考虑与第一个向量线性无关的向量,可以有$2^n-2^1$个,因为第一个向量的0倍和1倍不能选。
然后考虑与第一个和第二个向量线性无关的向量,可以有$2^n-2^2$个
于是最终的方案数为$\begin{aligned}\prod_{i=0}^{n}2^n-2^i\end{aligned}$ , 考虑分母为$2^{n\cdot n}$
$$
\begin{aligned}
&\frac{\begin{aligned}\prod_{i=0}^{n-1}2^n-2^i\end{aligned}}{2^{n\cdot n}}
\&=\begin{aligned}\prod_{i=0}^{n-1}1-\frac{2^i}{2^n}\end{aligned}
\&=\begin{aligned}\prod_{i=1}^{n}1-2^{-i}\end{aligned}
\end{aligned}
$$
https://ac.nowcoder.com/acm/contest/15801?&headNav=www
n个点的带权树,你可以删边,但要保证删边后图联通,可以加边,但要保证加边后所有简单环的异或和为0。
现在你可以随便操作,需要操作后的树的边权和最小。
题目中的两个操作都不会影响两个顶点之间路径的异或和。所以实际上相当于给了一个完全图,两个点之间的边权就是原始树上这两个点之间的路径的异或和,你要求一个最小生成树。
很多人都知道最小生成树有Kruskal算法和Prim算法,但是很少有人知道第三个算法:Boruvka算法,因为这个算法不常用。
https://ac.nowcoder.com/acm/contest/15789
定义
$$
f_c(x)=
\begin{cases}
max_{i=1}^n c\cdot f_c(\gcd(i,x)) &x\gt1\
1&x=1
\end{cases}
$$
输入c和x
f函数迭代次数越多,则值越大,也就是x取gcd的次数越多越好,所以每次选择x的最大因子即可。最终使用快速幂解决。
https://ac.nowcoder.com/acm/contest/15688?&headNav=www
给你字符串n个字符串$s_1$,$s_2$,$s_3$,… $s_n$给你函数$f(s,t)$,其值为最大的长度w,使得s的长度为w的前缀和t的长度为w的后缀相同完全。
你要计算
$$
\sum_{i=1}^{n}\sum_{i=1}^{n}f(s_i,s_j)^2 \mod 998244353
$$
$n<10^5$, 字符串总长度小于$10^6$