直大ãã‚“ã¨åŒ—大ãã‚“ã¯ã‚²ãƒ¼ãƒ ã‚’ã—ã¦ã„ã¾ã™ã€‚ 北大ãã‚“ã¯ã€ã¾ãšä»¥ä¸‹ã® BNF ã§è¡¨ã•ã‚Œã‚‹è«–ç†å¼ã‚’生æˆã—ã¾ã™ã€‚
<formula> ::= <or-expr> <or-expr> ::= <and-expr> | <or-expr> "|" <and-expr> <and-expr> ::= <term> | <and-expr> "&" <term> <term> ::= "(" <or-expr> ")" | "?"
&
ã¯è«–ç†ç©ã‚’ã€|
ã¯è«–ç†å’Œã‚’表ã—ã€&
ã®æ–¹ãŒ |
より先ã«è©•ä¾¡ã•ã‚Œã¾ã™ã€‚
直大ãã‚“ã¯ã€ã“ã®è«–ç†å¼ã‚’(文å—列ã¨ã—ã¦è¦‹ã¦ï¼‰å·¦ã‹ã‚‰èªã‚“ã§ã„ãã€?
を見ã¤ã‘ãŸã¨ã以下ã®è¡Œå‹•ã‚’ã—ã¾ã™ã€‚
?
ã‚’ 0
ã«ã—ã¦ã‚‚ 1
ã«ã—ã¦ã‚‚è«–ç†å¼ã®è©•ä¾¡çµæžœãŒå¤‰ã‚らãªã„ã“ã¨ãŒç¢ºå®šã—ã¦ã„ã‚‹ãªã‚‰ã€ä½•ã‚‚ã›ãšèªã¿é€²ã‚る。?
ã‚’ 0
ã¾ãŸã¯ 1
ã«æ›¸ãæ›ãˆã‚‹ã€‚è«–ç†å¼ã¯ä»¥ä¸‹ã®ã‚ˆã†ã«è©•ä¾¡ã•ã‚Œã¾ã™ã€‚ã„ã‚ゆる普通ã®è«–ç†å¼ã§ã™ã€‚
(0 & ?) == 0 (1 & 0) == 0 (1 & 1) == 1 (0 | 0) == 0 (0 | 1) == 1 (1 | ?) == 1
直大ãã‚“ãŒè«–ç†å¼ã®è©•ä¾¡çµæžœã‚’確定ã•ã›ã‚‹ãŸã‚ã«æ”¯æ‰•ã†å¿…è¦ãŒã‚る最å°é‡‘é¡ã¯ã„ãらã§ã—ょã†ï¼Ÿ 評価çµæžœã‚’ 0
ã«ã™ã‚‹å ´åˆã¨ 1
ã«ã™ã‚‹å ´åˆã§ãã‚Œãžã‚Œæ±‚ã‚ã¦ãã ã•ã„。
上㮠BNF ã«å¾“ã†è«–ç†å¼ãŒä¸€è¡Œã§ä¸Žãˆã‚‰ã‚Œã¾ã™ã€‚
è«–ç†å¼ã®é•·ã•ã¯ 2\times 10^5 を超ãˆãªã„。
評価çµæžœã‚’ 0
ã€1
ã«ã™ã‚‹ãŸã‚ã«å¿…è¦ãªæœ€å°é‡‘é¡ã‚’空白区切りã§å‡ºåŠ›ã—ã¦ãã ã•ã„。
?&?|?&?|?&?
3 2
0
ã«ã—ãŸã„å ´åˆã¯ 0 0 0
ã§æ›¸ãæ›ãˆã¦ 0&?|0&?|0&?
ã¨ã—ã€
1
ã«ã—ãŸã„å ´åˆã¯ 1 1
ã§æ›¸ãæ›ãˆã¦ 1&1|?&?|?&?
ã¨ã™ã‚‹ã®ãŒæœ€é©ã§ã™ã€‚
?&?&?|?&?&?
2 3
ãã‚Œãžã‚Œ 0&?&?|0&?&?
ã€1&1&1|?&?&?
ã¨ãªã‚Šã¾ã™ã€‚
(?|?|?)&?&?&?&?|?&?|?&?
4 4