zoukankan      html  css  js  c++  java
  • SGU 191.Exhibition(模拟)

    时间限制:0.25s

    空间限制:4M

    题意:

           有两个公司A、B,他们要展览物品,但是A公司的展柜要放B公司的物品,B公司的展柜要放A公司物品。最开始只有一个空柜台,从指定的一个公司开始,轮流进行操作,可选的操作有两个:①选一个自己公司的空展柜放上对方公司的物品         ②选一个自己公司的空展柜,在这个展柜左边插入一个对方公司的空展柜,再在这个新插入的展柜左边插入一个空展柜并放上自己公司的物品。

    题中给出了一个最终物品摆放的序列,问最后物品摆放的序列能否和给定序列相同。


    Solution:

                   对任意一个空展台的操作是影响不了前面的已经放置好了的展台的,所有,只要从左往右依次判断能否放,并用栈模拟操作就好了。

    code

    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <stack>
    using namespace std;
    string s, c;
    stack<int> tem;
    int main() {
        ios::sync_with_stdio (0);
        cin >> c >> s;
        int init = (c[0] == 'B');
        int  now, i, t = 1;
        tem.push (init);
        for (i = 0; i < s.size(); i++) {
            if (!tem.empty() )   now = tem.top();
            else
                break;
            if (s[i] == 'A') {
                if (now == 1)  tem.pop(), --t;
                else tem.push (now ^ 1), ++t;
            }
            else if (s[i] == 'B') {
                if (now == 0)  tem.pop(), --t;
                else tem.push (now ^ 1), ++t;
            }
        }
        if (i == s.size() && t == 0) puts ("YES");
        else   puts ("NO");
    }
    View Code
  • 相关阅读:
    常用正则
    使用html2canvas 图片 清晰性高 兼容好
    倒计时调用
    多线程实现等待屏(欢迎屏)的实现
    代码生成机器人被360软件管家收录
    代码生成器1.0正式发布
    代码生成器
    代码生成器 - 第一版最终版
    ICSharpCode.TextEditor使用经验
    代码生成器
  • 原文地址:https://www.cnblogs.com/keam37/p/4022982.html
Copyright © 2011-2022 走看看