제목:https://www.luogu.org/problemnew/show/P2051 제목: n*m의 칸에서 포를 쏘아 서로 공격할 수 없게 한다. 만약 두 포가 같은 줄에 같은 열이고 중간에 바둑알이 하나 더 있다면 공격할 수 있다.대포를 쏘는 방안이 몇 가지가 있느냐고 물었다. 사고방식: 우선 규칙에 따라 임의의 행과 열중포를 내놓을 수 있는 개수는 2개를 초과해서는 안 된다. 밀어냄을 시도해 볼 수 있습니다.$dp[i][j][k]$는 $i$줄로 처리되었음을 나타냅니다. 한 개의 포만 $j$개, 두 개의 포가 $k$개로 처리되었을 때의 방안 수입니다. $i-1$행이 $i$를 처리했을 때 0, 1, 2개의 포를 쏘아올릴 수 있습니다. 그래서 $dp[i][j][j][j][k] = dp[i-1] [j][ii][i-1] [j1] [j] [j] [j] [j] [j][i-1] [j] + dp[i-1] [j-1] [j-1] [j-1] [j-1] [j] [k] * (m-j-k + 1) + dp[i- 1] [j[i-1] [j] [j] [j] [j] [j] [j] [j] [j] [j] [j] [j] [j] [j] [j] [j] [j] [k] [k] = = = = = = [k- 1] [i-1] [i-1] [i-1] [i] [i] [i] [i] (m-j-k+1)$[이렇게 할 때마다 누가 누구를 밀어냈는지 헷갈린다.] 중간 과정에 int가 터질 수 있으니 LL로 하세요.