P2186 小Z的函数栈
有点恶心的模拟(代码写整齐一点不就好了)
以下情况算错:
1.运行中有数的绝对值大于1000000000
2.除以和取模的时候第一个数为0
3.取栈顶元素时栈内元素不够
上代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<stack>
#define G if(top==0) { flag=1; break; }//取模和除以的时候第一个数等于0
using namespace std;
stack<long long>s;
,p,n,y[];
],a;
) return false; return true; }//栈内元素是否少于一个
) return false; return true; }//栈内元素是否少于两个
void Do() { s.pop(); b=s.top(); s.pop(); }
void Clear() { if(s.size()) s.pop(); }
void f(long long x)
{
Clear(); s.push(x); flag=;//flag=1相当于错误
;i<=m;i++)//进行每一个操作
{
a=w[i];
if(s.size()) top=s.top();
//压行大法好
if(a=="END") break;
if(a=="NUM") s.push(y[i]);
if(a=="POP"&&E1()) s.pop();
if(a=="INV"&&E1()) { s.pop(); s.push(-top); }
if(a=="DUP"&&E1()) s.push(top);
if(a=="SWP"&&E2()) { Do(); s.push(top); s.push(b); }
if(a=="ADD"&&E2()) { Do(); s.push(top+b); E2(); }
if(a=="SUB"&&E2()) { Do(); s.push(b-top); E2(); }
if(a=="MUL"&&E2()) { Do(); s.push(b*top); E2(); }
if(a=="DIV"&&E2()) { Do(); G; s.push(b/top); E2(); }
if(a=="MOD"&&E2()) { Do(); G; s.push(b%top); E2(); }
) { flag=; break; }
}
||flag) printf("ERROR\n");//错误
else printf("%lld\n",s.top());
}
int main()
{
while(cin>>w[++m])//读入
{
if(w[m]=="END") break;
if(w[m]=="NUM") { scanf("%lld",&y[m]); }
}
scanf("%lld",&n);
;i<=n;i++) { scanf("%lld",&p); f(p); }
;
}
P2186 小Z的函数栈的更多相关文章
- P2186 小Z的栈函数
P2186 小Z的栈函数 题目描述 小Z最近发现了一个神奇的机器,这个机器的所有操作都是通过维护一个栈来完成的,它支持如下11个操作: NUM X:栈顶放入X. POP:抛弃栈顶元素. INV:将栈顶 ...
- [洛谷P2186] 小Z的栈函数
题目链接: 传送门 题目分析: 大模拟,先得存操作,然后再处理每个数-- 有一个小优化,在处理操作的时候顺便判一下最后栈里是不是有且仅有一个数,但A完了才想起来,所以就算了-- 总之就是个模拟题--没 ...
- 洛谷 2186 小Z的栈函数
https://www.luogu.org/problem/show?pid=2186 题目描述 小Z最近发现了一个神奇的机器,这个机器的所有操作都是通过维护一个栈来完成的,它支持如下11个操作: N ...
- 小Z爱序列(NOIP信(sang)心(bin)赛)From FallDream(粗制单调队列&单调栈的算法解析)
原题: 小Z最擅长解决序列问题啦,什么最长公共上升然后下降然后上升的子序列,小Z都是轻松解决的呢. 但是小Z不擅长出序列问题啊,所以它给了你一道签到题. 给定一个n个数的序列ai,你要求出满足下述条件 ...
- 【20170521校内模拟赛】热爱生活的小Z
学长FallDream所出的模拟赛,个人感觉题目难度还是比较适中的,难度在提高+左右,可能比较接近弱省省选,总体来讲试题考查范围较广,个人认为还是很不错的. 所有试题如无特殊声明,开启-O2优化,时限 ...
- BZOJ 2038 小Z的袜子(hose) 莫队算法模板题
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=2038 题目大意: 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中 ...
- broadcom6838开发环境实现函数栈追踪
在嵌入式设备开发中.内核为内核模块的函数栈追踪已经提供了非常好的支持,但用户层的函数栈追踪确没有非常好的提供支持. 在网上收集学习函数栈跟踪大部分都是描写叙述INTER体系架构支持栈帧的实现机制.或者 ...
- 【20170920校内模拟赛】小Z爱学习
所有题目开启-O2优化,开大栈空间,评测机效率为4亿左右. T1 小 Z 学数学(math) Description 要说小 Z 最不擅长的学科,那一定就是数学了.这不,他最近正在学习加法运算.老 ...
- 小Z爱图论(NOIP信(sang)心(bin)赛)From FallDream
题目: 小Z最近喜欢上了图论,于是他研究了一下图的连通性问题.但是他遇到了一个难题. 给定一个n个点的有向图,求有多少点对(i,j)满足从i点出发能到达点j ? 小Z仅会简单的朴素算法,所以他想问问你 ...
随机推荐
- mysql关联两张表时的编码问题
Mysql关联两张表时,产生错误提示Illegal mix of collations 1.先用工具把数据库.两张表的编码方式改变 2.这步很重要,需要改变字段的编码方式. ALTER TABLE ` ...
- 【vim编辑器】文本编辑器vim
在Linux系统中一切皆文件.配置一个服务就是在修改其配置文件的参数 一.Vim编辑器 vim是我们在Linux系统中常用的文件编辑命令,也可以使用其简写vi.其边际模式有三种:命令模式,输入模式,行 ...
- 15-Django开发REST接口
使用Django开发REST接口 我们以在Django框架中使用的图书以及书中人物案例来写一套支持图书数据增删改查的REST API接口,来理解REST API的开发(前后端均发送JSON格式数据) ...
- H5混合应用之上下文切换
一.native/web/hybrid 简介 目前主流应用程序大体分为:Native App(原生应用).Web App(网页应用).Hybrid App(混合应用),它们三者的优缺点比较如下表: 应 ...
- HTTP/2 新特性总结
我在想了解HTTP/2的时候,查阅了很多资料,发现这篇很好,是外国的文章.我翻译过来,加入自己的一点理解. HTTP/2 更简单,高效,强大.它在传输层解决了以前我们HTTP1.x中一直存在的问题.使 ...
- 图解servlet
You can see the following illustration to better understand the lifecycle of the Servlet. When the r ...
- 关于C#异常的处理
关于异常,从我们一开始写代码的时候就开始伴随着我们,只不过那时还没入门,脑子里并没有产生意识这就是异常.异常:程序运行期间发生错误,异常对象: 将程序发生的各种错误封装成对象曾记得第一次面试的时候,面 ...
- 全栈工程师对Python面试中is和==区别的详细解说!看完真的学到了!
面试实习生的时候,当问到 is 和 == 的区别时,很多同学都答不上来,搞不清两者什么时候返回一致,什么时候返回不一致.本文我们来看一下这两者的区别. 我们先来看几个例子: a = "hel ...
- RV32FDQ/RV64RDQ指令集(1)
Risc-V架构定义了可选的单精度浮点指令(F扩展指令集)和双精度浮点指令(D扩展指令集),以及四精度浮点指令集(Q扩展指令集).Risc-V架构规定:处理器可以选择只实现F扩展指令子集而不支持D扩展 ...
- leaflet-webpack 入门开发系列二加载不同在线地图切换显示(附源码下载)
前言 leaflet-webpack 入门开发系列环境知识点了解: node 安装包下载webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载地址 w ...