由题意知,有5种操作,5个未知数,可0可1,一串操作问是否恒为1,最多100个字符,直接栈模拟所有情况即可

代码如下:

int p, q, r, s, t;

bool calculate(string ind) {
int length = ind.size();
stack<int> buf;
for (int i = length - 1; i >= 0;--i) {
char tmp = ind[i];
if(tmp == 'p')
buf.push(p);
else if(tmp == 'q')
buf.push(q);
else if(tmp == 'r')
buf.push(r);
else if(tmp == 's')
buf.push(s);
else if(tmp == 't')
buf.push(t);
else if(tmp == 'K') {
int val1, val2;
val1 = buf.top(), buf.pop();
val2 = buf.top(), buf.pop();
buf.push(val1 & val2);
}
else if(tmp == 'A') {
int val1, val2;
val1 = buf.top(), buf.pop();
val2 = buf.top(), buf.pop();
buf.push(val1 || val2);
}
else if(tmp == 'N') {
int val = buf.top();
buf.pop();
buf.push(!val);
}
else if(tmp == 'C') {
int val1, val2;
val1 = buf.top(), buf.pop();
val2 = buf.top(), buf.pop();
buf.push(!val1 || val2);
}
else if(tmp == 'E') {
int val1, val2;
val1 = buf.top(), buf.pop();
val2 = buf.top(), buf.pop();
buf.push(val1 == val2);
}
} return buf.top();
} int main() {
string str;
while(cin >> str && str != "0") {
bool flag = true;
for (p = 0; p < 2;++p)
{
for (q = 0; q < 2;++q) {
for (r = 0; r < 2;++r) {
for (s = 0; s < 2;++s) {
for (t = 0; t < 2;++t) {
if(!calculate(str)) {
flag = false;
break;
}
}
if(!flag)break;
}
if(!flag)break;
}
if(!flag)break;
}
if(!flag)break;
}
if(flag)
printf("tautology\n");
else
printf("not\n");
}
return 0;
}
 

Day1-A-POJ-3295的更多相关文章

  1. poj 3295 Tautology (构造)

    题目:http://poj.org/problem?id=3295 题意:p,q,r,s,t,是五个二进制数. K,A,N,C,E,是五个运算符. K:&& A:||N:! C:(!w ...

  2. poj 3295 Tautology(栈)

    题目链接:http://poj.org/problem?id=3295 思路分析:判断逻辑表达式是否为永真式问题.根据该表达式的特点,逻辑词在逻辑变量前,类似于后缀表达式求值问题. 算法中使用两个栈, ...

  3. POJ 3295 Tautology(构造法)

    http://poj.org/problem?id=3295 题意: 判断表达式是否为永真式. 思路: 把每种情况都枚举一下. #include<iostream> #include< ...

  4. poj 3295 Tautology 伪递归

    题目链接: http://poj.org/problem?id=3295 题目描述: 给一个字符串,字符串所表示的表达式中p, q, r, s, t表示变量,取值可以为1或0.K, A, N, C, ...

  5. POJ 3295 Tautology(构造法)

    题目网址:http://poj.org/problem?id=3295 题目: Tautology Time Limit: 1000MS   Memory Limit: 65536K Total Su ...

  6. 构造 + 离散数学、重言式 - POJ 3295 Tautology

    Tautology Description WFF 'N PROOF is a logic game played with dice. Each die has six faces represen ...

  7. POJ 3295 Tautology (构造题)

    字母:K, A, N, C, E 表示逻辑运算 字母:p, q, r, s, t 表示逻辑变量 0 或 1 给一个字符串代表逻辑表达式,如果是永真式输出tautology 否则输出not 枚举每个逻辑 ...

  8. poj 3295 Tautology

    点击打开链接 Tautology Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8127   Accepted: 3115 ...

  9. POJ 3295 Tautology 构造 难度:1

    Tautology Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9580   Accepted: 3640 Descrip ...

  10. POJ 3295 Tautology (构造法)

    Tautology Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7716   Accepted: 2935 Descrip ...

随机推荐

  1. opencv:绘制图像直方图

    #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace st ...

  2. Flask笔记1

    Flask笔记 首先明确一下,要运行一个动态网页,我们需要 一个 Web 服务器来监听并响应请求,如果请求的是静态文件它就直接将其返回,如果是动态 url 它就将请求转交给 Web 应用. 一个 We ...

  3. 我来给你讲清楚Pythony广播

    初学python广播搞的人头大,今天老师上课讲了一下,茅塞顿开,zt老师nb 首先说一下后向纬度(这个后向纬度书里边称作低维),举例:(3,4,5)后向纬度是:3*4*5或4*5或5 向量广播的条件有 ...

  4. C++中使用sstream进行类型转换(数字字符串转数字、数字转数字字符串)

    1.sstream知识 sstream即字符串流.在使用字符串流sstream时,需要先引入相应的头文件 "#include <sstream>" 基本操作 // 引入 ...

  5. BFS(广度优先搜索遍历保存全局状态,华容道翻版做法)--08--DFS--蓝桥杯青蛙跳杯子

    题目描述 X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色. X星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去. 如下图,有一排杯子,左边的一个是空着的,右边的杯子,每个里边有一只青蛙 ...

  6. 在C中测试函数运行时间

    #include <stdio.h> #include <time.h> #include <math.h> clock_t start, stop; //cloc ...

  7. ubuntu 16 “无法获得锁”解决方案

    强制解锁,命令 sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock

  8. WordPress 网站迁移

    最近想把本地的WordPress迁移到我的Linux虚拟机里面,是不是很无聊,哈哈哈,接下来就是一过程了,其实这个和迁移到线上是一样的, 1.首先将本地的文件WordPress通过FTP传到虚拟机上: ...

  9. win10使用L2TP连接失败,报远程服务器未响应错误解决办法,亲测可用!

    报错如下: 原因是L2TP连接需要IPSec加密,远程服务器未响应说明IPSec加密被禁用了,需要在注册表启用它,具体步骤如下: 1.以管理员账号身份打开CMD,win10 是 win+x键 2.找到 ...

  10. Cisco Packet Tracer 7.2

    Cisco Packet Tracer 7.2.1已于2018年12月28日发布,版本号为7.2.1.0218,现在可在Cisco Netacad网站上下载. What's new in Cisco ...