zoukankan      html  css  js  c++  java
  • TYVJ1424-占卜DIY

    题目有点长,对于样例最好拿张A4纸模拟写一遍。

    可以发现程序一定不会死循环,因为每种牌都是4张,而死循环的条件是某种牌有5张然后你拿了又放进去。如果写出来死循环了,那就是写不对了。

    有几点可能是需要注意的:

    1.A牌就是1,不要把A写成11,然后发现一共56张牌怎么回事。。

    2.最好再开个变量nxt记录下一张拿到的牌,只用一个变量记录当前的牌很容易写错又发现不出来。

    3.最后统计多少对就是一共有多少牌翻了4次

    虽然写了一个早上但幸好是1A,贡献了自己1S~

    代码如下:

    #include <iostream>
    #include <queue>
    using namespace std;
    typedef long long ll;
    
    deque<char> que[14];
    char now,nxt;
    int vis[233][233],k,hath[233];
    void print()
    {
        for(int i=1;i<=13;++i){
            for(int j=0;j<4;++j)
                cout<<que[i][j]<<' ';
            cout<<endl;
        }
        cout<<"******"<<endl;
    }
    int  main() {
        for(int i=1; i<=13; ++i)
            for(int j=0; j<4; ++j) {
                char x;
                cin>>x;
                que[i].push_back(x);
            }
        while(k<4) {
            now=que[13][k];
            nxt='^';
            while(now!='K') {
                //vis[now-'0'][now-'0']=1;
                //cout<<now<<' '<<nxt<<endl;
                switch(now) {
                case 'A':
                    que[1].push_front(now);
                    hath[1]++;
                    nxt=que[1].back();
                    que[1].pop_back();
                    break;
                case 'J':
                    que[11].push_front(now);
                    hath[11]++;
                    nxt=que[11].back();
                    que[11].pop_back();
                    break;
                case 'Q':
                    que[12].push_front(now);
                    hath[12]++;
                    nxt=que[12].back();
                    que[12].pop_back();
                    break;
                
                case '0':
                    que[10].push_front(now);
                    hath[10]++;
                    nxt=que[10].back();
                    que[10].pop_back();
                    break;
                default:
                    que[now-'0'].push_front(now);
                    hath[now-'0']++;
                    nxt=que[now-'0'].back();
                    que[now-'0'].pop_back();
                    break;
                }
                now=nxt;
            }
            //cout<<"***"<<k+1<<endl;
            //print();
            ++k;
        }
        int ans=0;
        for(int i=1;i<=12;++i)
            ans+=hath[i]==4;
        cout<<ans<<endl;
        
        return 0;
    }
  • 相关阅读:
    ngnix之笔记
    nginx之"/"结尾
    nginx之root和alias区别
    Python3 操作Excel--openpyxl
    python学习笔记之线程、进程和协程(第八天)
    python之堡垒机(第九天)
    python学习笔记之socket(第七天)
    python学习笔记之paramiko和sqlalchemy (第九天)
    python之在线PK游戏(第六天)
    python学习笔记之类class(第六天)
  • 原文地址:https://www.cnblogs.com/-Chamgin/p/8989895.html
Copyright © 2011-2022 走看看