题目链接 首先想到状压dp,但是\(n,m\)高达100,怎么压? 容易发现,每行每列最多两个象棋,否则就直接gg了. 一个巧妙的设置状态的方式是,只需要记录到当前行有多少列是放了1个炮和2个炮. 然后每一行有3种选择:不放.放1个.放2个.分情况转移就行了. #include <cstdio> const int MOD = 9999973; const int MAXN = 110; int n, m, ans; long long f[MAXN][MAXN][MAXN]; int C(i…