ABC189 D - Logical Expression (400)
前から条件を見ていく
$ dp[i][0] で$ y_{i+1} がTrueになる場合の数、$ dp[i][1] が$ y_{i+1} がFalseになる場合の数
条件がANDの場合、$ dp[i+1][0] = dp[i][0], dp[i+1][1] = dp[i][1] * 2 + dp[i][0]
条件がORの場合、$ dp[i+1][1] = dp[i][1], dp[i+1][0] = dp[i][0] * 2 + dp[i][1]
最終的に$ dp[n][0] が答え
計算順を工夫すればDPは一次元の配列でできる