POJ 3295 Tautology 永真式,栈的简单模拟
来源:互联网 发布:mac editplus 编辑:程序博客网 时间:2024/05/21 14:49
倒这做比较方便,通过元素进栈,元素符号取出栈中元素做运算再放回栈中即可实现。
#include <cstdio>#include <cstring>#include <cstdlib>#include <iostream>#include <algorithm>#include <cmath>using namespace std;char str[150];int q, p, s, t, r;int stack[150];void view(){ int top = -1; int len = strlen(str); for(int i = len-1;i >=0;i--){ if(str[i] == 'q') stack[++top] = q; else if(str[i] == 'p') stack[++top] = p; else if(str[i] == 's') stack[++top] = s; else if(str[i] == 't') stack[++top] = t; else if(str[i] == 'r') stack[++top] = r; else if(str[i] == 'K'){ bool x = stack[top--]; bool y = stack[top--]; stack[++top] = x&&y; }else if(str[i] =='A'){ bool x = stack[top--]; bool y = stack[top--]; stack[++top] = x||y; }else if(str[i] == 'N'){ stack[top] = !stack[top]; }else if(str[i] == 'C'){ bool x = stack[top--]; bool y = stack[top--]; if(x == 1&&y==0) stack[++top] = 0; else stack[++top] = 1; }else if(str[i] == 'E'){ bool x = stack[top--]; bool y = stack[top--]; if((x==1&& y== 1)||(x==0&&y==0)) stack[++top] = 1; else stack[++top] = 0; } }}bool solve(){ for(q = 0;q < 2;q++) for(p = 0;p < 2;p++) for(s = 0;s < 2;s++) for(t = 0;t < 2;t++) for(r = 0;r < 2;r++){ view(); if(stack[0] == 0) return false; } return true;}int main(){ while(cin >> str){ if(strcmp(str,"0") == 0){ break; } if(solve()){ printf("tautology\n"); }else { printf("not\n"); } } return 0;}
0 0
- POJ 3295 Tautology 永真式,栈的简单模拟
- POJ 3295 Tautology (栈模拟)
- POJ 3295 Tautology 模拟
- POJ 3295 Tautology(模拟)
- POJ 3295: Tautology 递归的永真式
- poj 3295 Tautology (模拟栈操作+状压)
- POJ 3295-Tautology(模拟-逻辑表达式)
- POJ 2049Tautology(模拟)
- POJ3295 Tautology(模拟栈)
- POJ 3295 Tautology(似乎是模拟?…
- POJ 3295 Tautology (构造法 栈)
- POJ 3295-Tautology(构造法+栈)
- POJ 3295 Tautology(构造)(栈)
- POJ-3295-Tautology
- POJ 3295 Tautology
- POJ 3295 Tautology
- POJ 3295 Tautology
- poj 3295 Tautology
- ViewPager的使用
- Linux kernel的 Makefile和Kconfig以及Make menuconfig的关系
- 使用Initramfs挂载根文件系统,编译过程multiple target patterns(多个目标匹配)问题的解决
- 全栈介绍
- 以SpringMVC框架为中心疯狂扩展-09、添加Redis依赖
- POJ 3295 Tautology 永真式,栈的简单模拟
- Postgresql去除重复数据的方法
- 【HDU5734 2016 Multi-University Training Contest 2A】【公式代入推导】Acperience n维向量各有加减最小模长
- AppBarLayout源码解读
- 长假过后
- 网络基础简述
- 51nod - 1019 逆序数(归并排序or线段树)
- MBProgressHUD防止show的时候阻塞用户交互
- 高并发系统设计