Description

lyd学会了使用扑克DIY占卜。方法如下:一副去掉大小王的扑克共52张,打乱后均分为13堆,编号1~13,每堆4张,其中第13堆称作“生命牌”,也就是说你有4条命。这里边,4张K被称作死神。
初始状态下,所有的牌背面朝上扣下。
流程如下:
1.抽取生命牌中的最上面一张(第一张)。
2.把这张牌翻开,正面朝上,放到牌上的数字所对应编号的堆的最上边。(例如抽到2,正面朝上放到第2堆牌最上面,又比如抽到J,放到第11堆牌最上边,注意是正面朝上放)
3.从刚放了牌的那一堆最底下(最后一张)抽取一张牌,重复第2步。(例如你上次抽了2,放到了第二堆顶部,现在抽第二堆最后一张发现是8,又放到第8堆顶部.........)

4.在抽牌过程中如果抽到K,则称死了一条命,就扔掉K再从第1步开始。
5.当发现四条命都死了以后,统计现在每堆牌上边正面朝上的牌的数目,只要同一数字的牌出现4张正面朝上的牌(比如4个A),则称“开了一对”,当然4个K是不算的。
6.统计一共开了多少对,开了0对称作"极凶",1~2对为“大凶”,3对为“凶”,4~5对为“小凶”,6对为“中庸”,7~8对“小吉”,9对为“吉”,10~11为“大吉”,12为“满堂开花,极吉”。

如果还不明白,就去看样例把。。。

Input

一共13行,为每堆牌的具体牌是什么(不区分花色只区分数字),每堆输入的顺序为从上到下。
为了便于读入,用0代表10,那么A,J,Q,K(大写)就不用说了吧。。。

Output

一共开了几对。

Sample Input

8 5 A A
K 5 3 2
9 6 0 6
3 4 3 4
3 4 4 5
5 6 7 6
8 7 7 7
9 9 8 8
9 0 0 0
K J J J
Q A Q K
J Q 2 2
A K Q 2

Sample Output

9

元宵节待在机房刷题,看到难点的就不想写;

那么就来水道模拟题玩玩

大佬点的人可以选择用链表模拟

我本来就懒,这题范围也就这么点,暴力搞搞就好了

代码(长度可以优化,懒得改了,反正都AC了)

 #include<cstdio>
int s[][],f[],ans;
char a,b,c,d;
int main()
{
for(int i=;i<=;i++)
{
scanf("%c %c %c %c\n",&a,&b,&c,&d);
if(a>''&&a<='')s[i][]=a-'';
if(b>''&&b<='')s[i][]=b-'';
if(c>''&&c<='')s[i][]=c-'';
if(d>''&&d<='')s[i][]=d-'';
if(a=='A')s[i][]=;
if(b=='A')s[i][]=;
if(c=='A')s[i][]=;
if(d=='A')s[i][]=;
if(a=='J')s[i][]=;
if(b=='J')s[i][]=;
if(c=='J')s[i][]=;
if(d=='J')s[i][]=;
if(a=='Q')s[i][]=;
if(b=='Q')s[i][]=;
if(c=='Q')s[i][]=;
if(d=='Q')s[i][]=;
if(a=='K')s[i][]=;
if(b=='K')s[i][]=;
if(c=='K')s[i][]=;
if(d=='K')s[i][]=;
if(a=='')s[i][]=;
if(b=='')s[i][]=;
if(c=='')s[i][]=;
if(d=='')s[i][]=;
}
scanf("%c %c %c %c",&a,&b,&c,&d);
if(a>''&&a<='')s[][]=a-'';
if(b>''&&b<='')s[][]=b-'';
if(c>''&&c<='')s[][]=c-'';
if(d>''&&d<='')s[][]=d-'';
if(a=='A')s[][]=;
if(b=='A')s[][]=;
if(c=='A')s[][]=;
if(d=='A')s[][]=;
if(a=='J')s[][]=;
if(b=='J')s[][]=;
if(c=='J')s[][]=;
if(d=='J')s[][]=;
if(a=='Q')s[][]=;
if(b=='Q')s[][]=;
if(c=='Q')s[][]=;
if(d=='Q')s[][]=;
if(a=='K')s[][]=;
if(b=='K')s[][]=;
if(c=='K')s[][]=;
if(d=='K')s[][]=;
if(a=='')s[][]=;
if(b=='')s[][]=;
if(c=='')s[][]=;
if(d=='')s[][]=;
while()
{
if(f[]==)break;
int now=s[][];
f[now]++;
for(int i=;i<=;i++)s[][i-]=s[][i];
if(now==)continue;
while()
{
for(int i=;i>=;i--)s[now][i+]=s[now][i];
s[now][]=now;
now=s[now][];
f[now]++;
if(now==)break;
}
}
for(int i=;i<=;i++)if(f[i]==)ans++;
printf("%d",ans);
}

TYVJ1424占卜DIY的更多相关文章

  1. CH0802 占卜DIY

    模拟 没怎么看题..直接deque模拟水过了.. 但是后来回过头看了下题意..如果再次拿到正面朝上的牌,应该是废操作..可能是数据太水了... #include <bits/stdc++.h&g ...

  2. 占卜DIY

    题目地址 Code #include<iostream> #include<vector> #include<map> using namespace std; s ...

  3. 算法竞赛进阶指南 0x00 基本算法

    放在原来这个地方不太方便,影响阅读体验.为了读者能更好的刷题,另起一篇随笔. 0x00 基本算法 0x01 位运算 [题目][64位整数乘法] 知识点:快速幂思想的灵活运用 [题目][最短Hamilt ...

  4. 从零开始,DIY一个jQuery(1)

    从本篇开始会陪大家一起从零开始走一遍 jQuery 的奇妙旅途,在整个系列的实践中,我们会把 jQuery 的主要功能模块都了解和实现一遍. 这会是一段很长的历程,但也会很有意思 —— 作为前端领域的 ...

  5. [展示]手把手教你如何diy门户幻灯片

    第一步后台新建页面:这个就不用说了大家都会  新建后FTP里面会出现如下一个模板页面 第二步从ftp里面下载 template的index.htm文件  给首页模板页面添加JS代码 如下 将这段jS ...

  6. 用python DIY一个图片转pdf工具并打包成exe

    最近因为想要看漫画,无奈下载的漫画是jpg的格式,网上的转换器还没一个好用的,于是乎就打算用python自己DIY一下: 这里主要用了reportlab.开始打算随便写几行,结果为若干坑纠结了挺久,于 ...

  7. 联想A880 DIY 换触摸屏屏幕

    今年初入手的Lenovo A880手机,由于摔坏了屏幕不过能正常显示,咨询了联想的售后,说触摸屏和显示屏是分离的,换触摸屏需要280左右 为发挥DIY的精神,准备自己来处理这个屏幕 第一步:购买屏幕, ...

  8. 电子爱好者DIY篇

    2016/7/15 电子爱好者DIY篇 一年和之前就想到了一些感悟,现在有些模糊的清晰起来了,但还是不够清晰,故写下来做个日志. 结论 首先把结论放在前面.目前随着电子集成电路的发展,电子DIY越来越 ...

  9. 【DIY】【外壳】木板 & 亚克力 加工

    —————————————————————————————————————————————————————————————————————— 一.途径 淘宝 https://item.taobao.c ...

随机推荐

  1. 3D数学读书笔记——向量运算及在c++上的实现

     本系列文章由birdlove1987编写.转载请注明出处.     文章链接: http://blog.csdn.net/zhurui_idea/article/details/24782661   ...

  2. 拓展gcd求不定方程通解

    void gcd(LL a,LL b,LL &d,LL &x,LL &y){ ){d=a;x=;y=;return;} gcd(b,a%b,d,x,y); int t=x; x ...

  3. Photoshop颜色通道实例

    PHOTOSHOP学到这会儿,我们不得不来学学枯燥乏味的颜色理论了,因为如果再不学,就难以学下去了.眼下我们就遇到了难点:颜色通道.前面在初识通道的时候,我已经说过:当你打开一张照片(RGB模式)的时 ...

  4. 关于JavaScript的事件触发

    突然知道JavaScript底层是怎么实现事件触发的,找到一个博客,功力不够,看的很迷糊,记载这里吧,后面再研究. [探讨]javascript事件机制底层实现原理

  5. 内核中led触发器实例【转】

    本文转载自:http://blog.csdn.net/yuanlulu/article/details/6438847 ======================================== ...

  6. 关于ubuntu 16.04 docker常用命令

    1.sudo docker ps -a 查看当前docker实例的信息: CONTAINER ID        IMAGE               COMMAND                 ...

  7. 关于yolov3 训练输出值

    Region xx: cfg文件中yolo-layer的索引: Avg IOU:当前迭代中,预测的box与标注的box的平均交并比,越大越好,期望数值为1: Class: 标注物体的分类准确率,越大越 ...

  8. HDU2602(01背包)

    Bone Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  9. 给DataTable中添加一行数据

    一.如果该DataTable有两列,列的名称是Name,Age,且该DataTable的名称是dt; DataRow dr = dt.NewRow(); dr["Name"] = ...

  10. 微信公众平台:微信JS-SDK Demo

    ylbtech-微信公众平台:微信JS-SDK Demo 1. HTML返回顶部 1.demo.html <!DOCTYPE html> <html> <head> ...