h3mky0's blog

主に競プロについて書きます

AOJ2401 Equation (実装メモ)

問題リンク
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2401

最大11個の変数が含まれる式が与えられるので, 常に式が成立するかチェックする.
常に, の部分は各変数の0/1をbit全探索する. 式については気合で構文解析をする.

AND, OR, IMP等の二項演算はvariableが演算子の前後にくるため, 処理が容易.
一方で, NOT等の前置演算子をどう処理するかが問題.

NOTはvariableの後ろか, 左括弧の後ろに来る. よって, 左括弧が取り除かれるときやvariableが見つかった時にNOTを処理すればよさそう.

IMPの記号('->')とNOTの記号('-')が部分的に一致しているので注意する. (1WA)