zoukankan      html  css  js  c++  java
  • uva_127,栈以及vector的应用

    参考自http://www.cnblogs.com/maqiang/archive/2012/05/02/2479760.html
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <stack>
    #include <vector>
    using namespace std;
    struct st
    {
        char ch[3];
    };
    bool judge(st c,st d)
    {
        if(c.ch[0]==d.ch[0]||c.ch[1]==d.ch[1])
            return true;
        return false;
    }
    int main()
    {
        vector<stack<st> >piles;
        st s1;
        int cur=0;
        while(cin>>s1.ch)
        {
            if(s1.ch[0]=='#') break;
            cur++;
            stack<st>s;
            s.push(s1);
            piles.push_back(s);
            if(cur==52)
            {
                int n=52;
                while(true)
                {
                    int i;
                    for(i=1;i!=piles.size();i++)
                    {
                        if(i>2&&judge(piles[i].top(),piles[i-3].top()))
                        {
                            piles[i-3].push(piles[i].top());
                            piles[i].pop();
                            break;
                        }
                        if(i>0&&judge(piles[i].top(),piles[i-1].top()))
                        {
                            piles[i-1].push(piles[i].top());
                            piles[i].pop();
                            break;
                        }
                    }
                    if(i==piles.size()) break;
                    else if(piles[i].empty())
                    {
                        piles.erase(piles.begin()+i);
                    }
                }
                n=piles.size();
                if(n==1) cout<<n<<" pile remaining: ";
                else
                cout<<n<<" piles remaining: ";
                cout<<piles[0].size();
                for(int i=1;i<n;i++)
                    cout<<" "<<piles[i].size();
                cout<<endl;
                piles.clear();
                cur=0;
            }
        }
        return 0;
    }
    

  • 相关阅读:
    104. 二叉树的最大深度
    1120. 子树的最大平均值
    1121. 将数组分成几个递增序列
    1118. 一月有多少天
    1110. 删点成林
    102. 二叉树的层次遍历
    145. 二叉树的后序遍历
    94. 二叉树的中序遍历
    144. 二叉树的前序遍历
    剑指offer-0x04
  • 原文地址:https://www.cnblogs.com/vactor/p/4099992.html
Copyright © 2011-2022 走看看