博客
关于我
【ACM】POJ 3295 Tautology
阅读量:363 次
发布时间:2019-03-04

本文共 1335 字,大约阅读时间需要 4 分钟。

  该题的意思就是:给你一个表达式,判断它是否为永真式,若是输出tautology,否输出not。

  解题步骤:1.根据题内所示表格构造K,A,N,C,E的运算
                   2.枚举p,q,r,s,t的32种情况
                   3.表达式的计算
  注意事项:1.表达式为前置表达式,需从数组末尾开始遍历
                   2.全局变量每循环一次需重置
  ps:p,q,r,s,t的存储可用数组实现也可用map实现

 

#include 
#include
#include
#include
#include
using namespace std;char a[110];int num[5];int sign=1;//标记是否均符合要求 stack
cal;//运算栈int len;int calculate()//前缀表达式的运算 { int m,n; while(!cal.empty()) cal.pop(); for(int i=len-1;i>=0;i--) { if(a[i]=='p')//操作数部分 cal.push(num[0]); else if(a[i]=='q') cal.push(num[1]); else if(a[i]=='r') cal.push(num[2]); else if(a[i]=='s') cal.push(num[3]); else if(a[i]=='t') cal.push(num[4]); else//操作符部分 { m=cal.top();//取最顶上一个操作数,因为有非运算所以只取一个 cal.pop(); if(a[i]=='N') cal.push(!m); else { n=cal.top(); cal.pop(); if(a[i]=='K') cal.push(m&&n); else if(a[i]=='A') cal.push(m||n); else if(a[i]=='C') { if(m==1&&n==0) cal.push(0); else cal.push(1); } else if(a[i]=='E') { if(m==n) cal.push(1); else cal.push(0); } } } } return cal.top();} int main(){ while(cin.getline(a,110)) { if(a[0]=='0') break; len=strlen(a); for(int p=0;p<2&&sign;p++) { num[0]=p; for(int q=0;q<2&&sign;q++) { num[1]=q; for(int r=0;r<2&&sign;r++) { num[2]=r; for(int s=0;s<2&&sign;s++) { num[3]=s; for(int t=0;t<2&&sign;t++) { num[4]=t; if(calculate()==0) sign=0; } } } } } if(!sign) cout<<"not"<

 

转载地址:http://knzg.baihongyu.com/

你可能感兴趣的文章
Nacos基础版 从入门到精通
查看>>
Nacos如何实现Raft算法与Raft协议原理详解
查看>>
Nacos安装教程(非常详细)从零基础入门到精通,看完这一篇就够了
查看>>
Nacos实战攻略:从入门到精通,全面掌握服务治理与配置管理!(上)
查看>>
Nacos实战攻略:从入门到精通,全面掌握服务治理与配置管理!(下)
查看>>
Nacos心跳机制实现快速上下线
查看>>
nacos报错com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNAVAILABLE: io exception
查看>>
nacos服务提供和发现及客户端负载均衡配置
查看>>
Nacos服务注册与发现demo
查看>>
Nacos服务注册与发现的2种实现方法!
查看>>
nacos服务注册和发现原理简单实现案例
查看>>
Nacos服务注册总流程(源码分析)
查看>>
nacos服务注册流程
查看>>
Nacos服务部署安装
查看>>
nacos本地可以,上服务器报错
查看>>
Nacos注册Dubbo(2.7.x)以及namespace配置
查看>>
Nacos注册中心有几种调用方式?
查看>>
nacos注册失败,Feign调用失败,feign无法注入成我们的bean对象
查看>>
nacos源码 nacos注册中心1.4.x 源码 nacos源码如何下载 nacos 客户端源码下载地址 nacos discovery下载地址(一)
查看>>
nacos源码 nacos注册中心1.4.x 源码 spring cloud alibaba 的discovery做了什么 nacos客户端是如何启动的(二)
查看>>