容易发现题意等价于选出两个集合 $A,B$ 使得 $A\cap B=\varnothing$,$A,B$ 分别线性无关,求 $\max(|A|+|B|)$。下面默认 $v_i$ 是列向量。
考虑对于每个 $i$ 随机两个数 $a_i,b_i$,令 $$V=\begin{pmatrix}v_1,v_2,\dots\end{pmatrix},u_i=\begin{pmatrix}a_iv_i\\ b_iv_i\end{pmatrix},U=\begin{pmatrix}u_1,u_2,\dots\end{pmatrix}$$ 下面我们声称极大概率有 $\text{rank}(U)$ 就是答案。
首先选出 $u$ 的下标集合 $T$,我们声称 $T$ 中元素线性无关等价于 $T$ 可以划分为 $A\sqcup B$,使得 $\{v_i\mid i\in A\},\{v_i\mid i\in B\}$ 都线性无关。
首先若 $T$ 可以划分为 $A\sqcup B$,使 $\{v_i\mid i\in A\},\{v_i\mid i\in B\}$ 线性无关,设 $|A|=x,|B|=y$,那么由于 $A$ 中的 $v_i$ 线性无关,可以选出一个大小为 $x$ 的行下标集合 $R_A$,然后取 $V$ 中属于 $R_A$ 的行,属于 $A$ 的列形成一个矩阵 $T_A$,则这个矩阵的 $\text{rank}$ 为 $x$,$\det$ 不为 $0$。同理可以选出一个 $R_B$ 和 $B$ 构成一个矩阵 $T_B$,这个矩阵的 $\det$ 也不是 $0$。现在,在 $U$ 中选择 $\{i\mid i\in R_A\lor i-n\in R_B\}$ 这些行,即上半部分取 $R_A$ 对应的行,下半部分取 $R_B$ 对应的行,列取所有 $T$ 对应的向量得到一个矩阵 $M$,那么 $\det M$ 中有一项 $\pm\det T_A\det T_B\prod\limits_{i\in A}a_i\prod\limits_{i\in B}b_i$。由于 $\det T_A,\det T_B\ne0$,形式上,如果把 $\det M$ 看成所有 $a_i,b_i$ 的单项式,那么这一项不会被抵消,$\det M\ne0$,所以 $T$ 中元素线性无关。
另一边的证明也是同理,所以 $\text{rank}(U)=\max(|A|+|B|)$。如果不成立,说明存在 $\det M$ 代表的多项式变成了 $0$。设答案为 $K$,则 $\text{rank}$ 在形式意义下为 $K$,所以任何 $(K+1)\times(K+1)$ 的子式的行列式都是零。于是始终有 $\text{rank}\le K$。
然而实际情况下 $a,b$ 都是变量,不能看成多项式,而根据 Schwartz–Zippel 引理,设一个多项式 $f(x_1,x_2,\dots,x_s)$ 非零且次数 $\le d$,那么当 $x_i$ 在大小为 $N$ 的集合中随机时,$f(x_1,x_2,\dots,x_s)$ 变为 $0$ 的概率不超过 $\frac dN$。这是因为,可以把 $f$ 看成关于 $x_s$ 的多项式 $g_0(x_1,x_2,\dots,x_{s-1})+g_1(x_1,x_2,\dots,x_{s-1})x_s+g_2(x_1,x_2,\dots,x_{s-1})x_s^2+\dots+g_t(x_1,x_2,\dots,x_{s-1})x_s^t$,那么 $\deg g_t\le d-t$,根据归纳假设,$g_t=0$ 的概率为 $\frac{d-t}N$,所以 $g_t=0$ 且 $f=0$ 的概率不超过 $\frac{d-t}N$,$g_t\ne 0$ 时可以看成一个关于 $x_s$ 的一元 $t$ 次多项式,根据代数基本定理,至多有 $t$ 个根,所以 $f=0$ 的概率为 $\frac{d-t}N+\frac tN=\frac dN$。
在本题中,单次错误率不超过 $\frac {2n}p=3.005\times10^{-7}$。由于用了同一组 $a,b$,所以错误率不超过 $q\frac{2n}p=0.09$,尝试两次就基本不会出问题了。
于是现在问题转化为求一个区间的 $u_i$ 的 $\text{rank}$,区间线性基,前缀线性基之类的做一下就好了,时间复杂度 $\mathcal{O}(T(mn^2+nq))$,其中 $T$ 为尝试次数。可以用树状数组优化到 $\mathcal{O}(T(mn^2+q\log m))$。