TYVJ1424-占卜DIY

Posted -chamgin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
}

 

以上是关于TYVJ1424-占卜DIY的主要内容,如果未能解决你的问题,请参考以下文章

解题报告 『占卜DIY(模拟)』

占卜DIY

占卜DIY

CH0802 占卜DIY

基于PYTHON的科学占卜

教你学会塔罗免费占卜十八招