没想到这道题竟然这么水- 我们发现m,n都非常小,完全可以O(nm)O(nm)O(nm)预处理出stripe数组,即代表(i,j)(i,j)(i,j) 及其向上的一列的个数,然后进行递推即可. #include<cstdio> #include<algorithm> using namespace std; const int maxn = 2003; int C[maxn][maxn]; int ans[maxn][maxn], stripe[maxn][maxn]; int m…
Basic knowledge \[ C_n^m=\frac{n!}{m!(n - m)!} \] 快速幂 // Pure Quickpow inline int qpow(int n, int m, int mod) { ll tot = 1; for (ll k = n; m; k = k * k % mod, m >>= 1) if (m & 1) tot = tot * k % mod; return tot; } /* Matrix Quickpow * Au: H15tev…