POJ 3295【Tautology】

POJ3295-Tautology 北大POJ3295-Tautology 解题报告+AC代码 立即下载

题目链接

思路:

  • 这类题一看就是要用栈啦,我的思路是读入 string 后从后往前操作。
  • 如果遇到数字 (p、q、r、s、t) 就压栈,遇到运算符 (K、A、N、C、E) 就弹栈运算并且将子结果压栈。
  • 但是我虽然想到了思路,却没敢写,因为我总觉得可以有更简单的方法判断是否恒真,但是一搜题解好像大家都是循环做的。还是要敢做,哪怕不够优呢。太没自信,这点我要检讨。

代码:

  • 672K 0MS
​//672K		0MS


#include <iostream>
#include <stack>
#include <string>

using namespace std;

string str;
stack<bool> num;
int p,q,r,s,t;

bool CONNUM(char c){
	//converse number
	switch (c)
	{
		case 'p' : return p;
		case 'q' : return q;
		case 'r' : return r;
		case 's' : return s;
		case 't' : return t;
	}
}

void CONOPE(char c){
	if(c == 'N'){
		bool b = num.top();num.pop();
		b = !b;
		num.push(b);
		return ;
	}
	bool l,r;
	r = num.top();num.pop();
	l = num.top();num.pop();
	switch (c){
		case 'K' : num.push(l && r);return ;
		case 'A' : num.push(l || r);return ;
		case 'C' : num.push((!l) || r);return ;
		case 'E' : num.push(!(l ^ r));return ;
	}
}

bool CAL(){
	for(string::iterator i = str.end() - 1 ; i >= str.begin() ; i--){
		if(*i <= 'z' && *i >= 'a')
			num.push(CONNUM(*i));
		else
			CONOPE(*i);
	}
	if(num.top())//在AC()中 num.pop() 
		return true;
	else
		return false;
}

bool AC(){
	for(p=0;p<=1;p++){
			for(q=0;q<=1;q++){
				for(r=0;r<=1;r++){
					for(s=0;s<=1;s++){
						for(t=0;t<=1;t++){
							bool ans = CAL();
							num.pop();
							if(!ans) return false;
						}
					}
				}
			}
		}
	return true;
}


int main(){
	while(cin>>str && str[0] != '0'){
		if(AC())
			cout<<"tautology"<<endl;
		else
			cout<<"not"<<endl;
	}
	return 0;
} ​
手把手教你用Wireshark国密版分析TLCP和IPSec协议(附下载地址) 本文详细介绍了Wireshark国密版在TLCP和IPSec协议分析中的实战应用,包括环境配置、协议解析、合规性检查及高级分析技巧。该工具针对商用密码算法(如SM2/SM3/SM4)进行了专项优化,支持GB/T 38636-2020 TLCP和GB/T 36968-2018 IPSec VPN等国家标准,帮助开发者与安全工程师高效完成密评分析任务。 阅读详情

相关推荐

SAP特殊采购类80实战:跨工厂生产配置避坑指南(附完整测试流程)

本文深入解析SAP特殊采购类80在跨工厂生产场景下的实战应用与配置要点。文章从核心业务逻辑出发,详细拆解了后台配置、主数据与BOM的“双工厂”思维模式,并提供了从创建需求到成品收货的完整测试流程。重点揭示了多层BOM下的需求传递陷阱及常见报错解决方案,旨在帮助SAP顾问及用户规避实施风险,实现资源的灵活调度与流程自动化。

wind6的博客 1139

POJ3295 Tautology(栈+思路详解)

POJ3295http://poj.org/problem?id=3295 题目大意: 给定一个逻辑表达式,包含五个逻辑变量和五种运算,求问该表达式是否为重言式(永真)。 解题思路: 首先弄清楚题目给定的五种运算是什么: K ---- w&&x A ---- w||x N ---- !w C ---- (!w)||x E ---- w==x ...

Sensente的博客 1054

MTK平台LCD驱动开发实战:从零开始点亮你的Android屏幕

本文详细介绍了在MTK平台进行Android LCD驱动开发的完整流程。从理解LK与Kernel双核驱动框架入手,手把手讲解驱动结构体、屏幕参数配置、初始化序列编写以及PLL_CLOCK计算等核心步骤,并提供了系统集成配置与实用的调试避坑指南,帮助开发者高效点亮新屏幕。

terraform7cloud的博客 292

poj3295解题报告(构造、算术表达式运算)

POJ3952,题目链接http://poj.org/problem?id=3295 题意: 输入由p、q、r、s、t、K、A、N、C、E共10个字母组成的逻辑表达式, 其中p、q、r、s、t的值为1(true)或0(false),即逻辑变量; K、A、N、C、E为逻辑运算符, K-->and:x&&y A-->or:x||y...

weixin_34315189的博客 356

Unity URP项目里Post Processing死活没效果?别慌,这5个坑我帮你踩过了

本文详细解析了Unity URP项目中Post Processing效果失效的五大常见问题,包括渲染管线配置冲突、Volume作用域误判、摄像机参数漏配、Layer层级冲突和Profile引用异常。通过实际项目案例和代码示例,提供专业级解决方案,帮助开发者快速排查并修复后处理效果不生效的问题。

weixin_33721427的博客 333

word 2013 长篇文档排版案例教程

office 2013 制作长文格式模板

1万+

POJ3295 Tautology

构造法

Orange_CYH的博客 377

用Python和NumPy搞定复合材料层合板ABD矩阵计算(附完整代码与避坑指南)

本文详细介绍了如何使用Python和NumPy高效计算复合材料层合板的ABD刚度矩阵,包括单层板刚度计算、偏轴转换和层合板刚度集成。通过完整的代码示例和工程实践技巧,帮助工程师快速构建定制化分析工具,解决航空航天、汽车制造等领域的复合材料力学性能分析问题。特别提供了避坑指南和性能优化策略,确保计算结果的准确性和效率。

weixin_30752699的博客 277

POJ:题号 3295------tautology

#include#include#include#includeusing namespace std;int iOpe[]={0,0,0,0,0};char cOpe[]={'p','q','r','s','t'};set scOpe(cOpe,cOpe+5);map mpOpe;//核心思路:采用递归的方法//表达式中没有小括号,且各个运算符的优先级相同//唯一的区别就是双目和单目运算//一个

交流学习实践 734

ANSYS ICEM CFD 2023R2 结构化网格实战:翼型绕流 10 步生成高质量六面体网格

在计算流体力学(CFD)分析中,网格质量直接决定了仿真结果的精度和收敛性。对于翼型绕流这类典型的外部流动问题,结构化网格因其规则的节点排列和优异的边界层捕捉能力,成为高精度模拟的首选方案。通过在后缘处添加局部H型拓扑,并将过渡区增长率降至1.1,最终使网格质量指标提升40%,计算收敛速度提高2倍。这印证了结构化网格在复杂流动模拟中的不可替代性——虽然初期投入时间较多,但能显著提升计算精度和稳定性。在开始网格划分前,合理的几何准备是确保后续流程顺利的关键。对于翼型绕流,O型网格拓扑能提供最佳的边界层适应性。

weixin_30731305的博客 362

3. LangGraph快速入门

本示例中,我们将使用 Claude Sonnet 4.5 模型,并定义加法、乘法、除法工具。# 定义工具@toolArgs:"""@toolArgs:"""@toolArgs:"""# 为大模型绑定工具图的状态用于存储消息和大模型调用次数。LangGraph 中的状态在整个智能体执行过程中保持持久化。使用带的Annotated类型可以确保新消息追加到现有列表,而不是替换列表。模型节点用于调用大模型,并决定是否调用工具。return {],

Long_像风一样自由 842

POJ3295题解(模拟后缀表达式)

题意分析: 文字版: 给你一个逻辑表达式,pqrst等小写字母代表原子(就是有逻辑值0或者1的变量),AKNEC等分别代表了或,与,非,相等,蕴含关系。问无论原子值为何,表达式为恒真吗? 解题思路: KNppANpq,分析这个样例你会发现其实只要根据规则进行类似后缀表达式求值的过程即可,这不过这里需要逆向思维。这个题不需要考裂不合法的表达式! 测试样例: 输入: KNppANpq KNppANpp 0 输出: not not 解题代码: #include<iostream> #inc

stn54999的博客 392

数据分析:蛋白质组的GO term的富集分析详解

在获取差异表达蛋白质的数据之后,依据蛋白质与基因的对应映射关系,开展GO(Gene Ontology)term的富集分析。通过这一分析流程,能够精准地识别出不同实验组中过表达基因所关联的显著富集的GO term通路。这些富集的GO term通路为后续的生物学研究提供了关键线索,有助于深入探究基因功能、揭示潜在的生物学机制,从而推动生物学发现的进程。

专注生信领域 1368

[POJ 3295]Tautology[构造][DFS]

题目链接:[POJ 3295]Tautology[构造][DFS] 题意分析: 给出一个表达式,问:这个表达式是否是永真的?是的话,输出“tautology”,否则“not”。 其中变量最多有5个,代表字母为:p q r s t 大写字母:K-与,A-或,N-否,C-蕴含,E-相等 解题思路: 变量最多五个,那么就把所有情况都枚举一遍。解析表达式,使用dfs进行扫描,直到扫描到小写字母

闲停 530

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

POJ 3295: Tautology

题目来源:http://poj.org/problem?id=3295 Tautology Time Limit:1000MS Memory Limit:65536K Total Submissions:14016 Accepted:5414 Description WFF 'N PROOF is a...

da_kao_la的博客 286

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

poj3295 Tautology

poj3295 Tautology 哈哈,这个题目比较有意思。 一开始丝毫没有头绪,后来我想用分治的想法行不行呢,切割,然后函数返回该段的结果和结束位置,还很惆怅怎么存储的问题,然后我去洗头寻思出去溜达溜达,突然想起来我可以用结构体返回啊,这样就很简洁了,哈哈,这样什么都有了思路也很清晰,函数代码还真的不长,哈哈。 后来一个劲的RE,才发现...

weixin_30618985的博客 82

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

poj 3295 Tautology

poj 3295 Tautology(枚举)题意:给你一串长度不超过一百的字符串,里面包含10个字母分别是“p,q,r,s,t”代表0或1的数字,“K,A,N,C,E”表示操作,具体见问题给出的表格。问你无论字符串里面的数是什么,答案都输出1? 是输出“tautology”,不是输出“not”。 题解:此题就按前缀运算符那样,用栈处理下,暴力枚举下所有情况就好了。#include <cstdio>

学无纸巾 337

POJ 3295 Tautology

POJ 3295 Tautology 大致题意: 对pqrst五个变量之间进行and, or, not, implies, equals五种逻辑运算,若给出的运算结果是恒为1的就输出tautology,否则输出not这道题我用了列真值表的方式,因为总共就32种取值方式。 P Q R S T 对应值 0 0 0 0 0 0 0 0

czx111331的博客 348

POJ 3295 Tautology (构造法 栈)

题目链接:http://poj.org/problem?id=3295 一整天也就出一个题都习惯了。自代码出来刷了一天的WA。 TAT 这个题就是给你一串逻辑关系表达式,让你判断是不是重言式,这个题有两个难度点: 1.怎么判断这是不是一个重言式 2.逻辑语句是题目定义的语法,怎么知道这个逻辑语句描述的是什么   对于第一点,因为只有五个变量p,q,r,s,t,那么会有2^15次方种情况

顺便A道题 1542

POJ3295——Tautology

POJ3295 /* *********************************************************** 算法原理: WFF求值,从表达式的末尾向前读取字符,并分类出入栈。因为输入 是合法的,最后栈顶(且只有一个)的元素即为表达式的逻辑值 Notice: 1)位&运算符的运用,可以精简代码 2)判断K, A, N, C, E的逻辑值可以用已知二维数组

zykimmy的博客 457

Tautology POJ - 3295

Tautology POJ - 3295 题目链接:https://vjudge.net/problem/POJ-3295 题意:p,q,r,s,tp,q,r,s,tp,q,r,s,t都是公式里的变量,K,A,N,C,EK,A,N,C,EK,A,N,C,E是运算符。分别代表and,or,not,implies,equaland,or,not,implies,equaland,or,not,implies,equal运算。运算符真值表如下。 p,q,r,s,tp,q,r,s,tp,q,r,s,t是公式 如果

lovelyfather的博客 396

poj3295 Tautology —— 构造法

题目链接:http://poj.org/problem?id=3295 题意: 输入由p、q、r、s、t、K、A、N、C、E共10个字母组成的逻辑表达式, 其中p、q、r、s、t的值为1(true)或0(false),即逻辑变量; K、A、N、C、E为逻辑运算符, K --> and:  x && y A --> or:  x || y N -->

A man can be destroyed, but not defeated. 701

poj3295Tautology 离散数学前缀表达式(栈+枚举)

poj3295:点击打开链接 Tautology Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 13200   Accepted: 5031 Description WFF 'N PROOF is a logic game played with d

雪的期许 2300
上一篇: POJ 2586【Y2K Accounting Bug】
下一篇: POJ 3239【Solution to the n Queens Puzzle】
Masker_43
博客等级 码龄8年 5粉丝 143原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值