如果给出的线性基不是最小的,那么无解。
考虑简单转化一下问题。先把线性基消元,求出 \(X\) 在线性基中的 \(\text{Rank}\),再判一下全选是否无解。令 \(X\to \text{Rank}(X)\),问题可以转化为:在 \(\{0,1,..,X\}\) 的子集中选若干个数,使得子集线性基满秩(即秩等于 \(\{0,1,..,X\}\) 全选的秩)。(这里把 \(0\) 算进去了,最后答案要除以 \(2\))
考虑子空间容斥(子线性基容斥?)。枚举所有的不同的子线性基(也就是枚举所有进行高斯消元后的线性基),算出 \(0\sim X\) 内有 \(t\) 个数在该线性基内,则该线性基的子集答案为 \(2^t\)。
对于秩为 \(i\) 的线性基,求出 \(ans_i = \sum\) 所有秩为 \(i\) 的线性基的答案。最后进行一下 q-二项式反演,可以得到所有秩恰好为 \(i\) 的线性基答案。
接下来考虑怎么数 \(ans_i\)。(接下来讨论的全部都是消元后的线性基)
考虑求出 \(X\) 在该子线性基中的 \(\text{Rank}\),那个数是 \(2^{\text{Rank}(X)}\)。