uva计算机水平,UVA 12096 集合栈计算机

UVA 12096 集合栈计算机

题目描述

有一个专门为了集合运算而设计的“集合栈”计算机。该机器有一个初始为空的栈,并且

支持以下操作。

PUSH:空集“{}”入栈。

DUP:把当前栈顶元素复制一份后再入栈。

UNION:出栈两个集合,然后把二者的并集入栈。

INTERSECT:出栈两个集合,然后把二者的交集入栈。

ADD:出栈两个集合,然后把先出栈的集合加入到后出栈的集合中,把结果入栈。

每次操作后,输出栈顶集合的大小(即元素个数)。

知识补充:C++ stack

stack一个先进先出的堆栈

常用方法 empty pop push size top

empty() 堆栈为空则返回真

pop() 移除栈顶元素

push() 在栈顶增加元素

size() 返回栈中元素数目

top() 返回栈顶元素

代码实现

//摘自刘汝佳

#include

#inlcude

#include

#include

#include

typedef set Set;

map idache;

vector setcache;

#define all(x) x.begin(),x.end();

#define ins(x) inserter(x,x.begin())

int id(set x){

if(idache.count(x))

return idache[x];

setcache.push_back(x);

return idache[x]=setcache.size()-1;

}

stack s;

int n;

cin>>n;

for(int i=0;i

string op;

cin>>op;

if(op[0]=='p')

s.push(id(set()));

if(op[0]=='D')

s.push(s.top());

else

{

set x1=setcache[s.top()];

s.pop();

set x2=setcache[s.top()];

s.pop();

set x;

if (op[0] == 'U') set_union (ALL(x1), ALL(x2), INS(x));

if (op[0] == 'I') set_intersection (ALL(x1), ALL(x2), INS(x));

if (op[0] == 'A') { x = x2; x.insert(ID(x1)); }

s.push(ID(x));

}

cout<

}

by制杖菜鸡

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

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

相关文章

axis2 默认端口_使用axis2创建webservice

这个方式创建的webservice可以和web项目放到同一个工程下。创建webservice服务&#xff0c;所需要的jar包如下&#xff1a;axiom-api-1.2.8.jaraxiom-impl-1.2.8.jaraxis-0.1.jaraxis2-adb-1.5.jaraxis2-kernel-1.5.jaraxis2-transport-http-1.5.jaraxis2-transport-local-1.5.…

gta5显示nat较为严格_为何严格治理下雾霾天仍频发?哈尔滨市环保局解答重污染天3大疑问...

哈尔滨市环保局副局长姚玮晶解答近期重污染天三疑问我省与吉林大气污染或将联防联控气象条件不利秸秆焚烧集中 是雾霾主因今年供暖季以来&#xff0c;冰城污染天频发&#xff0c;与去年同期相比&#xff0c;重污染天气有所增多。自2013年冰城爆发大规模雾霾以来&#xff0c;省市…

中国科技大学计算机考研复试内容,中国科学技术大学考研复试

出国留学网考研网为大家提供中国科学技术大学材料科学与工程学院2018考研复试内容&#xff0c;更多考研资讯请关注我们网站的更新!中国科学技术大学材料科学与工程学院2018考研复试内容为进一步规范硕士生复试工作&#xff0c;确保复试工作的有效性和公平、公开、公正原则&…

react滑动切换tab动画效果_使用React实现的水平标签(Tab)栏

JavaScript语言&#xff1a;JaveScriptBabelCoffeeScript确定var data [{name: Red, value: red},{name: Blue, value: blue},{name: Yellow, value: yellow},{name: Green, value: green},{name: White, value: White}];var TabSelector React.createClass({getInitialState…

计算机专业英语宋,机电一体化专业英语宋主民章.pdf

机电一体化专业英语宋主民章第 3 章 中间转换电路3.1 前言传感器在测量系统中是把所测的机械信号转换为电量的一次仪表。这些电量可能是所用元件的电阻、电容或电感参数的变化&#xff0c;需要用电桥将它们转换为电压或电流信号。另一方面&#xff0c;实际上由一次仪表产生的电…

iis直接访问公网ip_如何配置IIS让自己的网站在公网上被访问?

在大学里网页制作基本成了我们的必修课&#xff0c;只要简单的做个个人网站就可以了&#xff0c;有的朋友比较认真把自己的网站申请了域名发布上去了或者自己挂在自己电脑上让人家访问&#xff0c;不管只是学习上的要求还是工作上的要求我们简单的讲下网站通过iis设置来被公网访…

杭州电子科技大学计算机专硕表数二,杭州电子科技大学 计算机学院 2016级计算机技术(专硕)培养方案...

本专业领域学制为2.5年&#xff0c;其中课程学习时间一般为1年&#xff0c;参加专业实践、科研、撰写学位论文和论文答辩的时间为1.5年。四、培养方式与原则1、学习各环节的设置与安排及学分要求(1)课程学习时间为2学期。课程设置由学位课、非学位课和必修环节组成。学位课包括…

mq集群要建传输队列吗_MQ集群配置详细说明

1.创建队列管理器MQESB(1414)\QMESB1(1416)\QMESB2(1416)\QMGW(1410)\QMCLIENT(1420)\2.启动队列管理器RUNMQSC QMESB(QMESB1、QMESB2)3.设置队列管理器侦听并启动(也可手动启动)DEFINE LISTENER(LISTENER.TCP) TRPTYPE(TCP) PORT(1414) CONTROL(QMGR)DEFINE LISTENER(LISTENER…

苹果笔记本计算机管理员删除,如何删除一个管理员?

注销要删除的管理员帐户&#xff0c;再以管理员帐户登入&#xff0c;然后跟下面方法&#xff1a;如果您是管理员&#xff0c;则可以删除您不再想让其可访问电脑的用户。删除用户时&#xff0c;您可以存储该用户的个人文件夹(包含用户的文件和设置)或删除该个人文件夹。选取苹果…

单片机搭建环境烧录方法_单片机仿真器的工作原理解析

仿真器出现的原因1、早期的单片机内部没有ROM&#xff0c;比如8031、8032&#xff0c;这种单片机只能外部扩展紫外擦除的EPROM存储器&#xff0c;就是芯片上带窗口的ROM。紫外擦除的ROM需要用紫外灯照射较长时间(10分钟或者更多)才能擦掉芯片中的内容以便写入新的程序。2、有的…

江苏省对口单招计算机原理,江苏省对口单招计算机原理教案

第三章CPU、指令系统、总线系统一、填空题1&#xff0e;指令由__________和__________两部分组成。2&#xff0e;指令中的__________指明完成操作所需要的操作数的地址。3&#xff0e;根据地址码部分所给出的地址的个数可将指令分为__________、__________、二地址指令、三地址…

分布式存储图解_BERT的youxiu变体:ALBERT论文图解介绍

作者&#xff1a;amitness编译&#xff1a;ronghuaiyang正文共&#xff1a; 3116 字 21 图预计阅读时间&#xff1a; 9 分钟原文链接&#xff1a;BERT的youxiu变体&#xff1a;ALBERT论文图解介绍​mp.weixin.qq.comALBERT作为BERT的一个变体&#xff0c;在保持性能的基础上&am…

不可压库艾特流的数值解计算机语言,不可压库埃特流的数值解学生洪安仕专业.ppt...

不可压库埃特流的数值解学生洪安仕专业学生&#xff1a;杜春雨 洪安仕 专业: 化学工程 学号: 1014207010 1014207014 学生&#xff1a;杜春雨 专业: 化学工程 学号: 1014207010 学生&#xff1a;洪安仕 专业: 化学工程 学号: 1014207014 追赶法(Ⅰ) 假设矩阵A非奇异&#xff0c…

wsl2启动桌面_win10 使用WSL2 添加Linux子系统,设置图形桌面,并设置开机启动桌面服务...

Win10 子系统安装图形桌面安装安装过程可参考https://zhuanlan.zhihu.com/p/149501381该文章中提到了重要的一点 由于WSL2里面不能用systemd,所以需要手动启动自动启动win10 Linux子系统程序我的启动脚本如下Set ws WScript.CreateObject("WScript.Shell")ws.run &q…

数据分析转软件测试,(转)性能测试用户模型(三):基础数据分析、场景数据...

作者&#xff1a;薛定谔的破猫基础数据分析以下图表均取自互联网&#xff0c;本文是在“已经获取所需数据”的前提下&#xff0c;讲解性能测试的一些设计思路。至于如何才能取得这些数据&#xff0c;将在后续的文章中说明。系统访问量分布由系统的日访问量分布图&#xff0c;可…

王者体验服服务器注册人数已满,王者官方大厅奖励有多难获得?服务器直接崩溃,玩家:别发红包了...

可乐要加冰&#xff0c;乔妹在你心&#xff0c;大家好我是小乔妹&#xff0c;每天为您分享有趣的王者资讯&#xff0c;感谢您的关注。王者荣耀一直以来都有许许多多的活动&#xff0c;有限时活动也有长久活动&#xff0c;但官方专属大厅奖励活动确实王者史上第一次奖励&#xf…

cmd输入pip报错_使用Pip管理Python的包

这是我的Python教程的第2篇文章第1篇文章在这里:Python安装0x01Pip介绍Pip是Python的包管理程序,负责Python的包的查找,下载,安装,卸载工作;使用Pip可以轻松的管理Python成千上万的第三包,使你在Python程序的开发如鱼得水0x02使用Pip确保已经把Python的路径添加进系统路径右键我…

jenkins部署流程图_一文教你使用 Jenkins 设计多环境、多项目持续集成环境!

自动化部署主要是为了解决项目多、环境多、持续集成慢、部署操作麻烦、手动操作易出错、自动化运维等问题。Jenkins是开源CI&CD软件领导者&#xff0c; 提供超过1000个插件来支持构建、部署、自动化&#xff0c; 满足任何项目的需要。目标&#xff1a;支持多分支、多环境、…

无线连接打印服务器,如何用旧电脑架设无线网络打印服务器

《如何用旧电脑架设无线网络打印服务器》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《如何用旧电脑架设无线网络打印服务器(4页珍藏版)》请在人人文库网上搜索。1、如何用旧电脑架设无线网络打印服务器在工作中&#xff0c;单位需要打印的文件还是不少的&#xff0…

udp 使用connect优点_一文搞懂TCP和UDP的区别

TCP(Transmission Control Protocol&#xff0c;传输控制协议)和UDP(User Data Protocol ,用户数据报协议)都属于TCP/IP协议簇。TCP/IP协议集包括了超文本传输协议(HTTP)、文本传输协议(FTP)、远程登录协议(Telnet)、internet协议(IP)、internet控制信息协议(IMCP)等&#xff0…