条件を満たすかどうかについて考える場合、 pip_i はその偶奇にしか興味がありません。
以下のような数列の個数を求めることが出来れば、それに N/2!×N/2!\lfloor N/2 \rfloor ! × \lceil N/2 \rceil ! を掛けることによって答えが求まります。

  • 長さ が NN であり、各要素が 0,10,1 のどちらかであり、11 の個数が N/2\lceil N/2 \rceil であり、条件に違反しない

これは以下のようなdpで求めることが出来ます。

  • dp[i][j]=dp[i][j]= ii 項目まで決めて、 11jj 個出てきて、今のところ条件に違反しないものの個数

答えは dp[N][N/2]×N/2!×N/2!dp[N][\lceil N/2 \rceil]×\lfloor N/2 \rfloor ! × \lceil N/2 \rceil ! です。