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. exp/imp三种模式——完全、用户、表

    ORACLE数据库有两类备份方法.第一类为物理备份,该方法实现数据库的完整恢复,但数据库必须运行在归挡模式下(业务数据库在非归挡模式下运行),且需要极大的外部存储设备,例如磁带库:第二类备份方式为逻辑 ...

  2. ReentrantLock(重入锁)简单源码分析

    1.ReentrantLock是基于AQS实现的一种重入锁. 2.先介绍下公平锁/非公平锁 公平锁 公平锁是指多个线程按照申请锁的顺序来获取锁. 非公平锁 非公平锁是指多个线程获取锁的顺序并不是按照申 ...

  3. Git检出远程库的分支等相关操作

    来到公司,询问同事后发现系统已经上传到Git远程仓库: 我这里先把远程仓库clone下来: $ git clone http://git.eas****tect.git 发现目录下只有一个READY. ...

  4. A Windows GUI for Appium

    A Windows GUI for Appium If you are new to Appium then please see the Getting started guide for more ...

  5. Anroid事件分发

    因为最近因个人原因离职,面试的时候,有人问到了Android中事件分发机制的过程,因为忘得差不多了,没答好,所以回来后,想写了个Demo,重新复习一遍. 一般来说,Android的组件其实可以分为两类 ...

  6. Android wifi 从连接态自动断开的解决办法(dhcp导致)【转】

    本文转载自:http://blog.csdn.net/DKBDKBDKB/article/details/38490201 对wifi部分的代码流程已经看了段时间,前两天终于解决了工作中遇到的一个wi ...

  7. 分布式锁(Redis实现)

    1.分布式锁解决方案  1.采用数据库 不建议 性能不好 jdbc  2.基于Redis实现分布式锁(setnx)setnx也可以存入key,如果存入key成功返回1,如果存入的key已经存在了,返回 ...

  8. html5--5-11 绘制文字

    html5--5-11 绘制文字 学习要点 掌握文字的绘制方法 文字的绘制方法 strokeText("文字",x,y,maxWith) 绘制(描边)空心文字 fillText(& ...

  9. Storm并行度详解

    一.Storm并行度相关的概念 Storm集群有很多节点,按照类型分为nimbus(主节点).supervisor(从节点),在conf/storm.yaml中配置了一个supervisor,有多个槽 ...

  10. bzoj1941

    KD-tree **了这道题 这个估价函数好鬼畜,把min打成max... 关于min的估价函数非常鬼畜,具体我也不知道为什么. #include<bits/stdc++.h> using ...