等价表达式

小目标的最后一步。

原题链接:https://www.luogu.org/problem/show?pid=1054

精力不足,代码工作可能要放在后几天。。。

思路已经明确了,我说一下。

这道题的大意是给出若干表达式,问这些表达式的值和初始表达式的值是不是相等。

问题中给出了一个未知数a,这个a没有什么很好的解决办法, 通常的也是其他题解常用的那就是自己给a赋值,只要别赋0啊1啊-1之类的可能冲突概率大的值就好。

(可以赋一个妹子生日什么的增加RP

在说具体做法之前,我想我应该说一下一些细节问题。

1.判断输入的合法性,看样子输入里面有左右括号不相等的情况,输入时最好加一个判断。

2.算出来的答案可能会非常大,记得开longlong并且边算边取模。模数也得自己选,随便找一个大质数就好。

接下来是具体做法,表达式的处理。

通过输入样例可以判断,输入的是中缀表达式。一开始我想的是把中缀转后缀,然后代入求值并判断,不过后来我发现,首先,转后缀表达式的过程虽然好想但非常难写,其次,求中缀表达式有自己的方法,所以根本不需要转成后缀表达式。

接下来的问题就转化成了怎么求中缀表达式的值了。

正常向的方法是开两个栈,一个数字栈一个符号栈,顺序读入,遇到数字直接压入数字栈,遇到操作符时,并且这个运算符的优先级要低于之前一个,那就先把之前那个操作弹出来计算。

如果遇到左括号,就一直读,读到右括号时将括号内的表达式按照之前的规则求值。

最后再把栈里没算完的算完就是最后结果了。然后就是比对输出。

转载于:https://www.cnblogs.com/OIerShawnZhou/p/7604576.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253287.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解析电子墨水屏技术(工作原理与LCD的区别)

阅读电子书早已成为大家生活中一部分,方便轻巧的电子版书籍更便于携带,而电子阅读器也不仅仅局限于电脑、手机等传统设备,新兴的电子书阅读器渐渐为我们所接受。E-ink电子墨水技术就是现在最著名的产品之一,他的出现让电子书阅读器…

27:级数求和

27:级数求和 查看提交统计提问总时间限制: 1000ms内存限制: 65536kB描述已知:Sn 1+1/2+1/3+…+1/n。显然对于任意一个整数K,当n足够大的时候,Sn大于K。 现给出…

入门视频采集与处理(BT656简介) 转

凡是做模拟信号采集的,很少不涉及BT.656标准的,因为常见的模拟视频信号采集芯片都支持输出BT.656的数字信号,那么,BT.656到底是何种格式呢?本文将主要介绍 标准的 8bit BT656(4:2:2)YCbCr SDTV&…

眼图(Eye Diagram)与数字信号测试

问题: 什么是眼图?它用在什么场合?反映了波形的什么信息?NI相应的解决方案是怎样的? 解答: 眼图(Eye Diagram)可以显示出数字信号的传输质量,经常用于需要对电子设备、芯片中串行数字信号或者…

BZOJ 1609 [Usaco2008 Feb]Eating Together麻烦的聚餐:LIS LDS (nlogn)

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id1609 题意: 给你一个只由数字"1,2,3"组成的序列a[i],共n个数。 你可以任意更改这些数字,使得序列中每一种数字都“站在一起”,并且单调不减或不增…

Oracle 数据库字典 sys.obj$ 表中关于type#的解释

sys.obj$ 表是oracle 数据库字典表中的对象基础表,所有对象都在该表中有记录,其中type#字段表明对象类型,比如有一个表 test ,则该对象在sys.obj$ 中存在一条记录,name列为test, type#列为2,表示…

Python高级特性:列表生成式

列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。 最常见的例子: 生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11)):>>> list(range(1, 11)) [1, 2, 3, 4, 5, 6, 7, 8…

2018年智能音箱对比

众所周知,2014年底,电商巨头亚马逊推出智能音箱产品Echo之后,引起市场的强烈反响。随后、谷歌、微软、苹果均开始布局智能音箱市场,国内公司以玲珑科技打头阵。2017年国内公司纷纷发布智能音箱,被称为智能音箱元年。经…

AMD与CMD区别

AMD:异步模块定义,是一个浏览器端模块化开发的规范,由于不是原生JS支持,使用AMD规范需要用到require.js库require.js注意解决两个问题1、多个js文件可能有依赖关系,被依赖的文件需要早于依赖它的文件加载到浏览器2、js加载的时候浏…

[LeetCode] Interleaving String

1. 是一个很明显的动态规划题。 2. s3中的每个字符不是s1中的就是s2中的,只要根据它之前的状态做转移就可以。 1 class Solution {2 public:3 bool isInterleave(string s1, string s2, string s3) {4 int n s1.size();5 int m s2.size();6 …

Python Urllib库详解

Urllib库详解 什么是Urllib? Python内置的HTTP请求库 urllib.request 请求模块 urllib.error 异常处理模块 urllib.parse url解析模块 urllib.robotparser robots.txt解析模块 相比Python2变化 python2 import urllib2 response urllib2.urlopen(http://www.baidu.com) pytho…

LVDS通信接口详细介绍

1. 概述 LVDS Low-Voltage Differential Signaling 低电压差分信号,属于平衡传输信号。 这种技术的核心是采用极低的电压摆幅高速差动传输数据,从而有以下特点: 低功耗---低误码率---低串扰---低抖动---低辐射 良好的信号完整性。 推…

ThinkPHP简单的验证码实现

ThinkPHP简单的验证码实现 写一个最简单的TP验证码。 写Controller 首先在Controller/IndexController.class.php&#xff08;简称Index&#xff09;文件中编辑&#xff1a; 1 <?php 2 namespace Home\Controller; 3 use Think\Controller; 4 use Think\Verify;//这个类…

Celery框架简单实例

Python 中可以使用Celery框架 Celery框架是提供异步任务处理的框架&#xff0c;有两种用法&#xff0c;一种&#xff1a;应用程式发布任务消息&#xff0c;后台Worker监听执行&#xff0c;好处在于不影响应用程序继续执行。第二种&#xff0c;设置定时执行&#xff08;这边没测…

沸腾新十年 | 中国语音产业江湖和科大讯飞的前半生

沸腾新十年 | 中国语音产业江湖和科大讯飞的前半生 2019-01-09 来源:左林右狸 写在前面&#xff1a; 这是《沸腾新十年》的第十一篇剧透文&#xff0c;也是2019年的第一篇剧透文&#xff0c;从确认选题到采编到反复修改&#xff0c;这篇稿子操作时间前后历经近半年。究其原…

权值

【概述】 在数学领域&#xff0c;权值指加权平均数中的每个数的频数&#xff0c;也称为权数或权重。在搜索引擎中&#xff0c;权值越高的内容在排序中越靠前。 实际应用中可以通过修改权值来重新调整索引在列表中的排序位置。 【示例】 1 /**2 * 创建索引3 */4 …

vue.js devtools的安装

http://www.cnblogs.com/lolDragon/p/6268345.html http://blog.csdn.net/wxl1555/article/details/76091614 转载于:https://www.cnblogs.com/songmengyao/p/7609548.html

[oracle]分区表学习

&#xff08;一&#xff09;什么是分区 所谓分区&#xff0c;就是将一张巨型表或巨型索引分成若干个独立的组成部分进行存储和管理&#xff0c;每一个相对小的&#xff0c;可独立管理的部分&#xff0c;称为分区。 &#xff08;二&#xff09;分区的优势 提高数据可管理性。对表…