TYVJ1424占卜DIY
Description
初始状态下,所有的牌背面朝上扣下。
流程如下:
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
为了便于读入,用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的更多相关文章
- CH0802 占卜DIY
模拟 没怎么看题..直接deque模拟水过了.. 但是后来回过头看了下题意..如果再次拿到正面朝上的牌,应该是废操作..可能是数据太水了... #include <bits/stdc++.h&g ...
- 占卜DIY
题目地址 Code #include<iostream> #include<vector> #include<map> using namespace std; s ...
- 算法竞赛进阶指南 0x00 基本算法
放在原来这个地方不太方便,影响阅读体验.为了读者能更好的刷题,另起一篇随笔. 0x00 基本算法 0x01 位运算 [题目][64位整数乘法] 知识点:快速幂思想的灵活运用 [题目][最短Hamilt ...
- 从零开始,DIY一个jQuery(1)
从本篇开始会陪大家一起从零开始走一遍 jQuery 的奇妙旅途,在整个系列的实践中,我们会把 jQuery 的主要功能模块都了解和实现一遍. 这会是一段很长的历程,但也会很有意思 —— 作为前端领域的 ...
- [展示]手把手教你如何diy门户幻灯片
第一步后台新建页面:这个就不用说了大家都会 新建后FTP里面会出现如下一个模板页面 第二步从ftp里面下载 template的index.htm文件 给首页模板页面添加JS代码 如下 将这段jS ...
- 用python DIY一个图片转pdf工具并打包成exe
最近因为想要看漫画,无奈下载的漫画是jpg的格式,网上的转换器还没一个好用的,于是乎就打算用python自己DIY一下: 这里主要用了reportlab.开始打算随便写几行,结果为若干坑纠结了挺久,于 ...
- 联想A880 DIY 换触摸屏屏幕
今年初入手的Lenovo A880手机,由于摔坏了屏幕不过能正常显示,咨询了联想的售后,说触摸屏和显示屏是分离的,换触摸屏需要280左右 为发挥DIY的精神,准备自己来处理这个屏幕 第一步:购买屏幕, ...
- 电子爱好者DIY篇
2016/7/15 电子爱好者DIY篇 一年和之前就想到了一些感悟,现在有些模糊的清晰起来了,但还是不够清晰,故写下来做个日志. 结论 首先把结论放在前面.目前随着电子集成电路的发展,电子DIY越来越 ...
- 【DIY】【外壳】木板 & 亚克力 加工
—————————————————————————————————————————————————————————————————————— 一.途径 淘宝 https://item.taobao.c ...
随机推荐
- java中String.valueOf(obj)、(String)obj与obj.toString()有什么区别
方法1:采用 Object.toString()方法 在这种使用方法中,因为java.lang.Object类里已有public方法.toString(),所以对任何严格意义上的java对象都可以调用 ...
- ansible j2文件注意事项
j2文件中使用变量的时候,不需要 {{}} 遇到if,for等条件判断语句,变量的话,只需要变量名即可, 字符串需要 加上引号.
- ICE协议下NAT穿越的实现(STUN&TURN)
正文: 一. 首先来简单讲讲什么是NAT? 原来这是因为IPV4引起的,我们上网很可能会处在一个NAT设备(无线路由器之类)之后.NAT设备会在IP封包通过设备时修改源/目的IP地址. 对于家用路由器 ...
- linux应用之perl环境的安装(centos)
1.安装Perl环境 yum install perl*这个命令基本上把perl的模块给安装齐了.yum install cpanCPAN这个就不用说了吧,大家都懂. 如果你对perl模块版本要求比较 ...
- hdu 1040 As Easy As A+B(排序)
题意:裸排序 思路:排序 #include<iostream> #include<stdio.h> #include<algorithm> using namesp ...
- git比较两个版本,获取所有代码有差别的文件,并拷贝到一个文件夹中
git diff 3b3855d a024af5 --name-only | xargs -i cp '{}' ./update/ --parents 解释:通过xargs 命令,把git diff ...
- Windows服务的快速搭建与调试(C#图解)
Windows服务的快速搭建与调试(C#图解) 目录 一.什么是Windows 服务? 二.创建Windows 服务与安装/卸载批处理. 三.调试Windows 服务. 正文 一.什么是Windo ...
- 第九章-IO编程
IO是输出输入的意思 在计算机中常用到的数据交换的地方是磁盘, 网络等 输入流是从外面(磁盘, 网络)流进内存 输出流是从内存流到外面(磁盘, 网络) 同步IO是指等待IO完成再继续执行 异步IO是在 ...
- 使用Oracle数据库实现树形结构表的子-父级迭代(递归)查询和删除,通过级联菜单简单举例
前言: 我们在开发中,常常遇到单表的子-父id级联的表结构,在树形的深度不确定的情况下,一次查询出某个树形结构下的所有具有子-父级关系的数据变得十分困难. 这时,我们使用oracle提供的CONNEC ...
- JavaScript-Tool:validate.js-un
ylbtech-JavaScript-Tool:validate.js 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 0. http://validatejs. ...