首页 > 其他分享 >模拟记-P2186 小 Z 的栈函数

模拟记-P2186 小 Z 的栈函数

时间:2023-08-18 13:44:21浏览次数:38  
标签:P2186 函数 int tot MAXN long return 模拟

哈哈哈哈哈哈哈

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int MAXN=2005;
int a[MAXN],tot,n,t;
string s[MAXN];
stack<int>q;
inline bool ne(int x){
	return abs(x)>1000000000;
}
inline void error(){cout<<"ERROR"<<endl;}
inline void work(int x){
	q.push(x);
	for(int i=1;i<tot;i++){
		if(s[i]=="NUM"){
			if(ne(a[i])) return error();
			q.push(a[i]);
		}
		else if(s[i]=="POP"){
			if(q.empty()) return error();
			q.pop();
		}
		else if(s[i]=="INV"){
			if(q.empty()) return error();
			int k=-q.top();
			q.pop();
			q.push(k);
		}
		else if(s[i]=="DUP"){
			if(q.empty()) return error();
			int k=q.top();
			q.push(k);
		}
		else if(s[i]=="SWP"){
			if(q.size()<2) return error();
			int k=q.top();
			q.pop();
			int k1=q.top();
			q.pop();
			q.push(k);
			q.push(k1);
		}
		else if(s[i]=="ADD"){
			if(q.size()<2) return error();
			int k=q.top();
			q.pop();
			int k1=q.top();
			q.pop();
			if(ne(k+k1)) return error();
			q.push(k+k1);
		}
		else if(s[i]=="SUB"){
			if(q.size()<2) return error();
			int k=q.top();
			q.pop();
			int k1=q.top();
			q.pop();
			if(ne(k1-k)) return error();
			q.push(k1-k);
		}
		else if(s[i]=="MUL"){
			if(q.size()<2) return error();
			int k=q.top();
			q.pop();
			int k1=q.top();
			q.pop();
			if(ne(k1*k)) return error();
			q.push(k1*k);
		}
		else if(s[i]=="DIV"){
			if(q.size()<2) return error();
			int k=q.top();
			q.pop();
			int k1=q.top();
			q.pop();
			if(k==0) return error();
			if(ne(k1/k)) return error();
			q.push(k1/k);
		}
		else if(s[i]=="MOD"){
			if(q.size()<2) return error();
			int k=q.top();
			q.pop();
			int k1=q.top();
			q.pop();
			q.push(k1%k);
		}
		else error();
	}
	if(q.size()!=1) error();
	else cout<<q.top()<<endl;
}
signed main(){
	ios_base::sync_with_stdio(NULL);
	cin.tie(nullptr);
	cout.tie(nullptr);
	while(cin>>s[++tot]){
		if(s[tot]=="END") break;
		else if(s[tot]=="NUM") cin>>a[tot];
	}
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>t;
		work(t);
		while(!q.empty()) q.pop();
	}
	return 0;
}

标签:P2186,函数,int,tot,MAXN,long,return,模拟
From: https://www.cnblogs.com/CodeFishHp/p/17640261.html

相关文章

  • 无涯教程-Perl - umask函数
    描述此函数为当前进程设置umask(创建文件和目录时应用的默认掩码)。EXPR的值必须是八进制数。如果省略EXPR,则只需返回先前的值。语法以下是此函数的简单语法-umaskEXPRumask返回值此函数返回先前的umask值。例以下是显示其基本用法的示例代码-#!/usr/bin/perl-......
  • 无涯教程-Perl - ucfirst函数
    描述该函数返回的EXPR值仅将第一个字符大写。如果省略EXPR,则使用$_。语法以下是此函数的简单语法-ucfirstEXPRucfirst返回值此函数返回第一个字符为大写的String。例以下是显示其基本用法的示例代码-#!/usr/bin/perl-w$string='thecatsatonthemat.';$u_......
  • 树的实例--模拟文件系统
    博客地址:https://www.cnblogs.com/zylyehuo/#-*-coding:utf-8-*-classNode:#链式存储def__init__(self,name,type='dir'):self.name=nameself.type=type#"dir"or"file"self.children=[]......
  • 无涯教程-Perl - tr函数
    描述这不是功能。这是音译运算符;它将SEARCHLIST中所有出现的字符替换为REPLACEMENTLIST中的字符。语法以下是此函数的简单语法-tr/SEARCHLIST/REPLACEMENTLIST/返回值此函数返回替换或删除的字符数。例以下是显示其基本用法的示例代码-#!/usr/bin/perl-w$string='......
  • 26、华为eNSP模拟器
    eNSP-企业网络仿真平台,是华为模拟器仿真平台,图形化操作界面,主要对路由器、交换机、防火墙进行软件仿真实验,方便实验操作。链接地址:https://forum.huawei.com/enterprise/zh/thread/580934378039689216   亲测好用 ......
  • C++ 字符串分割函数
    #include<iostream>#include<string>#include<vector>#include<algorithm>#include<chrono>usingnamespacestd;voidMyprint(strings){cout<<s<<endl;}vector<string>Split(strings,stringc){......
  • 深入探究 Python 中的装饰器与函数式编程范式
    在Python的后端开发中,装饰器是一种强大的技术,而函数式编程范式则能够带来更具表现力和模块化的代码。本文将深入探讨Python中的装饰器和函数式编程,帮助你更好地理解和应用这些技术,提升代码质量和可维护性。装饰器的基本概念装饰器是Python中的一种高级技术,它允许你在不修改原函数代......
  • C++函数参数匹配规则
    C++函数参数匹配1单个参数匹配voidf();//f1voidf(int);//f2voidf(int,int);//f3voidf(double,double=3.14);//f4intmain(){f(5.6);//调用f4return0;}candidatefunctions:函数名称相同(f1,f2,f3,f4都是)。viablefunctions:参数个数相同(......
  • 8.17 模拟赛 & 学习笔记
    三天模拟赛+讲课,请的wyz大佬。主要是搞图论这一块。(大概能逃3天军训罢。)评价今日模拟赛:据说对标noip难度但显然放了很大的水。可惜好像手感很不好,是rank12/20。再接再厉?大家都强强强!我弱弱弱!模拟赛题目传送门A.泰拉大陆,原CF601A错因是小条件判错了??诶嘿。由于模拟......
  • CSP模拟23
    电压、农民、奇迹树、暴雨来自\(\texttt{happyguy}\)的馈赠。A.电压我们考虑选一条边作为那条两边结点相同的边。首先考虑,如果不选奇环上的边。奇环上的边一定有两端结点颜色相同的,所以如果图中有奇环,奇环上的边一定被选择。考虑偶环,偶环上的边一定不能被选,选了的话偶环......