俏兔子大战傻贼鹰(刚开始接触是写的,一直在草稿箱)
链接:https://ac.nowcoder.com/acm/contest/1838/D
来源:牛客网
题目描述
麻蛇更,麻蛇更,麻蛇不更麻蛇羹,麻蛇更麻蛇也羹。
傻贼鹰今天到兔子家做客因为傻贼鹰听说兔子家的四川省四川大学是一所双流一大学,还有很多漂亮的俏兔子。你作为四川大学英语最好的最俏的俏兔子,被安排接待傻贼鹰。 傻贼鹰来到四川大学被四川大学ACM集训队的兔子拉着打四川麻将,由于傻贼鹰实在学不会麻将,现在兔子们决定复杂一下简单的规则:
1、只有条(索)、筒(饼)、万三种牌共108张每种牌36张(一二三四五六七八九各4张),没有花、风牌和箭牌。
2、必须缺一门可胡且开局确定缺哪一门,即胡牌的时候不能有三种花色的牌。
3、不允许鸣牌(吃碰杠)
4、坎牌:三张连续的同种牌如(一万二万三万),三张同样的牌如(一筒一筒一筒)
5、一对将:两张完全相同的牌如(一条一条)
胡牌规则:
1、平胡:四坎牌加一对将
2、七对子:七对一模一样的牌(缺索:一万一万二万二万一筒一筒三筒三筒五筒五筒六筒六筒九筒九筒) 即使简化了规则,傻贼鹰还是学不会,所以就求你告诉他是不是能胡牌,如果能胡牌你就要用你那专业的英语告诉他Yes,不能胡牌你就要告诉他No
输入描述:
输入有多组数据,每组数据第一行是N(1\le N\le10)(1≤N≤10)表示这一局傻贼鹰对你询问了N次。
第二行是一个大写字母(T:表示筒(饼),S:表示索(条)W,表示万)用来表示定缺牌。
接下来N行,每行一个字符串用来表示询问是否能胡的14张牌的信息。
比如:1W1W2W2W1T1T3T3T5T5T6T6T9T9T
表示:一万一万二万二万一筒一筒三筒三筒五筒五筒六筒六筒九筒九筒
输出描述:
对于傻贼鹰的每一次询问,如果能胡牌输出Yes,不能胡牌输出No。
示例1
输入
5
S
1W1W2W2W1T1T3T3T5T5T6T6T9T9T
1W1W2W2W1T1T3T3T5T5T6T6T9S9S
8T9T1W3W4W5T8T2W8T9T5T5T5W6W
1W2W2W1W3W3W3W9S1W1W2W2W3W9S
3W3W3W3W4W5W6W6W6W7W8W9W9W9W
1
T
1W3W1S1S2S1W2W1W3W2S3S3S2W1W
输出
Yes
No
Yes
No
Yes
Yes
题意分析
分
#include <bits/stdc++.h>
using namespace std;
int n;
char si, str[25];
int num[3][10];
int main()
{while(~scanf("%d %c", &n,&si) ){for (int l = 1; l <= n; l++){for(int j=0;j<3;j++)for(int k=0;k<=9;k++)num[j][k]=0;scanf("%s", str);int a = 0;for (int i = 0; i < 28; i++){if(str[i] == si) {a = 1;break;}}if(a){printf("No\n");continue;}for (int i = 1; i < 28; i += 2){if(str[i] == 'W') num[0][str[i - 1] - '0']++;else if(str[i] == 'T') num[1][str[i - 1] - '0']++;else num[2][str[i - 1] - '0']++;// printf("%c\n", str[i - 1]);}int sum1 = 0, sum2 = 0, sum3 = 0, sum4 = 0;for (int i = 0; i < 3; i++)for (int j = 1; j <= 9; j++)if(num[i][j] == 2)sum1++;//对子for (int i = 0; i < 3; i++){for (int j = 1; j <= 7; j++){while(num[i][j] > 0 && num[i][j + 1] > 0 && num[i][j + 2] > 0){sum3++;//坎牌1类num[i][j]--, num[i][j + 1]--, num[i][j + 2]--;//坎牌1类用过// printf("%d\n", j);}}}for (int i = 0; i < 3; i++){for (int j = 1; j <= 9; j++){if(num[i][j] == 3) sum4++;//坎牌2类else if(num[i][j] == 2) sum2++; //消除坎牌1类重复后的对子}}// printf("%d %d %d %d\n", sum1, sum2, sum3, sum4);if(sum1 == 7 || (sum2 == 1 && (sum4 + sum3 == 4))) printf("Yes\n");else printf("No\n");}}return 0;
}
俏兔子大战傻贼鹰(刚开始接触是写的,一直在草稿箱)相关推荐
- 刚上班老板叫写个人目标_让老板开心是错误的目标
刚上班老板叫写个人目标 我们都有老板. 我们也有客户向我们支付运行其软件项目的费用. 他们是合同期间的我老板. 我还担任为teamed.io工作的开发人员的老板. 显而易见,一个好的员工/承包商是使老 ...
- 刚学vue,写的一个入门demo,时光网
vue写的一个移动端时光网 刚学vue不久,动手写了一个demo. 源代码 源代码地址:GitHub 技术栈 vue2 + vuex + vue-router + webpack + ES6 + sc ...
- a开头的计算机语言,我们刚开始接触计算机语言大多从Hello world 开始
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 char szClassName[] = "MainWnd"; HINSTANCE hInstance; int WINAPI Win ...
- jboss简单使用--刚开始接触,感觉还是比较详细的
初学Jboss,对于Jboss的基础认识以及配置做一些记录 Jboss基础: JBoss是什么 –基于J2EE的应用服务器 –开放源代码 –JBoss核心服务不包括支持servlet/JSP的WEB容 ...
- 计算机表格判断是否合格操作,关于一些刚开始接触计算机的基础知识(2)
学习笔记 计算机原理: 计算机如何运行:涉及[硬件(物质),软件(精神意识)] 硬件:输入+输出+控制器(控制各部件有条不紊)+运算器(对数据加工处理,算术运算,逻辑运算)+存储设备 硬件:电子设备, ...
- 刚开始接触YOLO,记录一下Windows系统下载yolov5与初步进行训练的过程
一.下载pycharm.anaconda 与yolov5. 第一步:下载pycharm . anaconda pycharm:Download PyCharm: Python IDE for Prof ...
- 刚放假 就随便写点 什么 写一下怎么刷BIOS 换开机logo
以下为重中之重 刷BIOS可能会导致电脑GG 需要返厂修 或者你有编程器且会用编程器 要是电脑gg一切后果请自行负责 刷BIOS可能会导致电脑GG 需要返厂修 或者你有编程器且会用编程器 要是电脑gg ...
- 手机端变身为手柄杆,可以玩原来的游戏。坦克大战 网页版手柄。 java开发 自己写demo
任何的手机,需要本身的浏览器 访问服务器端就可以操作了. 手机效果如图: 服务器端效果: 服务器端源码: js代码: 后台服务器代码:
- 新品发布 | 刚入门接触无人机?推荐一款S450给你
炸机,是无人机玩家的噩梦,对于无人机研发来说也是一个痛苦而无法避免的事情,炸机后不仅需要组装新的无人机,增加研发经费,还可能在更换零件后遇到崭新的问题,花费了大量时间重复测试.如果飞手拥有丰富的飞行经 ...
最新文章
- python怎么用excel-如何用python打开excel
- php和python和java-python与java区别
- request获取数据3种方法
- Spring Boot实现一个天气预报系统(一)
- boost::gil模块实现打包像素格式的测试程序
- 禁止访问Apache目录
- 在VI中删除行尾的换行符
- php5 mongodb,ThinkPHP5之Mongodb使用技巧
- linux 测试cpu计算圆周率_Linux下测试CPU性能
- 催收 重新分案_贷后风险管理(催收)模型框架搭建
- 计算机网络设计 pdf,计算机网络教学设计.pdf
- svn 设置文件可执行权限
- [转载] java 内部类与闭包
- STM32标准库官网下载方法
- 谷歌、bing 翻译插件调研总结
- SPSS入门笔记记录
- 计算机教室报损登记簿,瑞安市第四中学
- Intellij Idea将普通项目导出为jar包
- 唐澳华的亚索有错吗?
- E152A03EIOA 3AXD50000032633驱动器