题目名称 |
|
三值逻辑 |
|
题目类型 |
|
传统型 |
|
目录 |
tribool |
可执行文件名 |
输入文件名 |
tribool.in |
输出文件名 |
tribool.out |
每个测试点时限 |
秒 |
内存限制 |
|
测试点数目 |
|
测试点是否等分 |
是 |
提交源程序文件名
【题目描述】
小 L 今天学习了 Kleene 三值逻辑。
在三值逻辑中,一个变量的值可能为:真(,简写作 )、假(,简写作 )或未确定(,简写作 )。
在三值逻辑上也可以定义逻辑运算。由于小 L 学习进度很慢,只掌握了逻辑非运算 ,其运算法则为:
现在小 L 有 个三值逻辑变量 。小 L 想进行一些有趣的尝试,于是他写下了 条语句。语句有以下三种类型,其中 表示赋值:
- ,其中 为 的一种;
- ;
- 。
一开始,小 L 会给这些变量赋初值,然后按顺序运行这 条语句。
小 L 希望执行了所有语句后,所有变量的最终值与初值都相等。在此前提下,小 L 希望初值中 的变量尽可能少。
在本题中,你需要帮助小 L 找到 变量个数最少的赋初值方案,使得执行了所有语句后所有变量的最终值和初始值相等。小 L 保证,至少对于本题的所有测试用例,这样的赋初值方案都必然是存在的。