题目描述
无
算法1
用栈来储存1-12号牌堆,13号用queue,当然还可以用其它的,,,
然后无脑搞就可以了,用sum[]统计翻开的牌的数量,,,
C++ 代码
#include<stack>
#include<queue>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
#include<map>
using namespace std;
stack<int>s[20];
queue<int>q;
int sum[14];
int main(){
char c;
int x;
for(int i=1;i<=13;++i){
for(int j=1;j<=4;++j){
cin>>c;
if(c=='0') x=10;
else if(c=='A') x=1;
else if(c=='J') x=11;
else if(c=='Q') x=12;
else if(c=='K') x=13;
else x=c-'0';
if(i!=13)s[i].push(x);
else q.push(x);
}
}
int tot=0;
int now=q.front();
q.pop();
while(tot<4){
if(now==13){
++tot;
if(!q.empty()){
now=q.front();
q.pop();
}
}
else{
sum[now]++;
int temp=now;
now=s[now].top();
s[temp].pop();
}
}
int ans=0;
for(int i=1;i<=12;++i){
if(sum[i]==4) ++ans;
}
cout<<ans;
}