【题解】CH0802占卜DIY 模拟
程序员文章站
2024-03-19 09:46:10
...
题目链接
根据题意模拟
#include<cstdio>
#include<cctype>
#include<iostream>
#include<vector>
using namespace std;
#define _rep(i,a,b) for(int i=(a);i<=(b);i++)
#define _for(i,a,b) for(int i=(a);i<(b);i++)
#define rep_(i,a,b) for(int i=(a);i>=(b);i--)
char ch;
int num,ans,f=1;
vector<pair<int,int> >vx[20];
void work(int x)
{
if(x==13)return;
vx[x].push_back(make_pair(0,1));
rep_(i,vx[x].size(),0)vx[x][i+1]=vx[x][i];
vx[x][0].first=x;vx[x][0].second=1;
pair<int,int> tmp=vx[x].back();
vx[x].pop_back();
work(tmp.first);
}
int main()
{
//freopen("in.txt","r",stdin);
_rep(i,1,13)_rep(j,1,4)
{
cin>>ch;
if(isdigit(ch)){num=ch-'0';if(!num)num=10;}
else
{
switch(ch){
case 'A':num=1;break;
case 'J':num=11;break;
case 'Q':num=12;break;
case 'K':num=13;break;
}
}
vx[i].push_back(make_pair(num,0));
}
_for(i,0,vx[13].size())work(vx[13][i].first);
_rep(i,1,12){
f=1;
_for(j,0,vx[i].size())
{
pair<int,int> tmp=vx[i][j];
if(tmp.second&&tmp.first==i)continue;
else f=0;
}
if(f)ans++;
}
printf("%d\n",ans);
return 0;
}
上一篇: 算法:URL短地址压缩算法-短网址映射。
下一篇: MD5加密算法