zoukankan      html  css  js  c++  java
  • 5_5 集合栈计算机(UVa12096)<stack与STL其他容器的综合运用>

    有一个专门为了集合运算而设计的“集合栈”计算机。该机器有一个初始化为空的栈,并支持以下操作:( 维护 N(1≤N≤2000) 个操作, 可能的五种操作如下:)

    ■PUSH: 在栈顶加入一个空集合 A={} ;
    ■DUP: 把栈顶集合 A 复制一遍再加进去;
    ■UNION: 弹出栈顶集合 A 及其下集合 B , 把它们的并集加入栈;
    ■INTERSECT: 弹出栈顶集合 A 及其下集合 B , 把他们的交集加入栈;
    ■ADD: 弹出栈顶集合 A 及其下集合 B , 把栈顶集合 A 作为一个元素加入集合 B , 再把集合 B 加入栈中.

    对于每个操作, 输出栈顶集合 A 中的元素个数.

    例如:栈顶元素是:A = {{},{{}}},下一个元素是B = {{},{{{}}}},则:

    ■UNION操作将得到 {{}, {{}}, {{{}}}},输出3.

    ■INTERSECT操作将得到{{}},输出1.

    ■ADD操作将得到{{}, {{{}}}, {{},{{}}}},输出3.

    输入不超过2000个操作数,并保证操作均能顺利进行(不需要对空栈执行出栈操作)。

    【输入】

    一个整数0≤T≤5在第一行给出的测试用例集的基数。每个测试案例的第一行包含0≤N≤操作数2000。然后每一个包含五个命令中的每一个。这是保证setstack计算机可以执行所有的命令序列中没有出现一个空栈。

    【输出】

    对于输入中所指定的每个操作,将有一个由一个整数组成的一行。
    这个整数是经过相应的命令执行的堆栈顶端的元素的个数。在每个测试用例都会有一行“***”(三个)。

    【样例输入】

    2
    9
    PUSH
    DUP
    ADD
    PUSH
    ADD
    DUP
    ADD
    DUP
    UNION
    5
    PUSH
    PUSH
    ADD
    PUSH
    INTERSECT

    【样例输出】

    0
    0
    1
    0
    1
    1
    2
    2
    2
    ***
    0
    0
    1
    0
    0
    ***

  • 相关阅读:
    IOS越狱开发错误解决
    IOS越狱开发环境搭建
    ios越狱开发
    IOS开发常用的开源组件
    ios日期比较
    IOS RGB颜色转换
    UILabel基本用法
    ios根据字体大小设置
    第五篇 窗口管理机制之输入机制--管道过滤器模式
    第四篇 ANDROID窗口管理服务实现机制--远程代理模式
  • 原文地址:https://www.cnblogs.com/jjzzx/p/5381638.html
Copyright © 2011-2022 走看看