题目:http://poj.org/problem?id=3295

题意:p,q,r,s,t,是五个二进制数。

K,A,N,C,E,是五个运算符。

K:&&

A:||
N:!

C:(!w)||x

E:w==x

题意是让求如果对于五个数的所有情况一个式子总是恒为1,那么这个式子就是tautology。输出tautology。

否则输出not。

5个数,最多有2^5种情况。

判断式子是不是恒为1,只需要从后往前判断即可。

这题好长时间没看懂,代码也是看网上大神的

 #include<iostream>
#include<cstring>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
using namespace std;
char str[];
int stack[]; int check()
{
int pp,qq,rr,ss,tt,n,i,top;
n=strlen(str);
for(pp = ; pp < ; pp++)
for(qq = ; qq < ; qq++)
for(rr = ; rr < ; rr++)
for(ss = ; ss < ; ss++)
for(tt = ; tt < ; tt++)
{
top = ;
for(i = n-; i >= ; i--)
{
if(str[i]=='q') stack[top++]=qq;
if(str[i]=='p') stack[top++]=pp;
if(str[i]=='r') stack[top++]=rr;
if(str[i]=='t') stack[top++]=tt;
if(str[i]=='s') stack[top++]=ss;
if(str[i]=='K') top--,stack[top-]=(stack[top-]&&stack[top]);
if(str[i]=='A') top--,stack[top-]=(stack[top-]||stack[top]);
if(str[i]=='N') stack[top-]=!stack[top-];
if(str[i]=='C') top--,stack[top-]=((!stack[top-])||stack[top]);
if(str[i]=='E') top--,stack[top-]=((stack[top-])==stack[top]);
}
if(top!=||stack[top-]!=)
return ;
} return ;
}; int main()
{
while(gets(str)&&str[]!='')
{
if(check())
cout<<"tautology"<<endl;
else
cout<<"not"<<endl;
}
return ;
}

poj 3295 Tautology (构造)的更多相关文章

  1. POJ 3295 Tautology(构造法)

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

  2. POJ 3295 Tautology 构造 难度:1

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

  3. [ACM] POJ 3295 Tautology (构造)

    Tautology Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9302   Accepted: 3549 Descrip ...

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

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

  5. POJ 3295 Tautology(构造法)

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

  6. POJ 3295 Tautology (构造题)

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

  7. POJ 3295 Tautology (构造法)

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

  8. poj 3295 Tautology(栈)

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

  9. poj 3295 Tautology 伪递归

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

随机推荐

  1. liger 的 ligerDialog 的使用。

    /// 查看页面,跳出一个新的添加窗口 function AddMessage() { $.ligerDialog.open({ url: UrlAddMessage, height: , width ...

  2. 《WPF程序设计指南》读书笔记——第5章 Stack与Wrap

    1.StackPanel面板 using System; using System.Windows; using System.Windows.Input; using System.Windows. ...

  3. SQL优化的四个方面,缓存,表结构,索引,SQL语句

    一,缓存 数据库属于 IO 密集型的应用程序,其主要职责就是数据的管理及存储工作.而我们知道,从内存中读取一个数据库的时间是微秒级别,而从一块普通硬盘上读取一个IO是在毫秒级别,二者相差3个数量级.所 ...

  4. Mysql数据库备份和还原常用的命令

    Mysql数据库备份和还原常用的命令是进行Mysql数据库备份和还原的关键,没有命令,什么都无从做起,更谈不上什么备份还原,只有给系统这个命令,让它去执行,才能完成Mysql数据库备份和还原的操作,下 ...

  5. 深入浅出话XAML-学习笔记

    第一章 XAML是什么? 1.1XAML之前 *设计师的设计更不上程序逻辑的变化 *程序员未能完全实现设计师提供的效果图 *效果图与程序功能不能完全匹配 *从效果图到软件UI的转化耗费很多时间 1.2 ...

  6. linux标准输入输出重定向

    command > filename 把标准输出重定向到一个文件,如果文件不存在则新建,如果存在则覆盖其内容.command >> filename 把标准输出重定向到一个文件中,如 ...

  7. Increase SharePoint Execution Timeout

    <system.web> <compilation batch="false" batchTimeout="600" maxBatchSize ...

  8. 利用JQuery的$.ajax()可以很方便的调用asp.net的后台方法

    利用JQuery的$.ajax()可以很方便的调用asp.net的后台方法. 先来个简单的实例热热身吧. 1.无参数的方法调用 asp.net code: view plaincopy to clip ...

  9. crontab定时任务中文乱码问题

    手动执行都很正常的的脚本,添加到定时任务中日志文件全是乱码经过多方查证终于找到了原因! crontab启动的任务没有获取系统的环境变量,导致中文乱码解决办法:   在执行的脚步中添加编码方式或者添加对 ...

  10. linux驱动系列之arm汇编

    在arm平台学习linux时,会遇到arm汇编指令,arm汇编指令与8086汇编指令很多地方都不同,在此记下来以免后面忘了,同时在学习了汇编指令之后分析一些汇编指令编写的代码. 一.相对跳转指令b.b ...