模拟 hihoCoder 1177 顺子

题目传送门

 1 /*
 2     模拟:简单的照着规则做就可以了,把各种情况考虑到,虽然比赛写的丑了点,但能1Y还是很开心的:)
 3 */
 4 #include <cstdio>
 5 #include <cstring>
 6 #include <iostream>
 7 #include <algorithm>
 8 #include <cmath>
 9 using namespace std;
10
11 const int MAXN = 1e2 + 10;
12 const int INF = 0x3f3f3f3f;
13 struct Card
14 {
15     int v, w;
16 }ca[10];
17 char s[10][10];
18
19 bool cmp(Card x, Card y)    {return x.v < y.v;}
20
21 int main(void)        //hihoCoder 1177 顺子
22 {
23     while (scanf ("%s %s %s %s", s[1], s[2], s[3], s[4]) == 4)
24     {
25         int pre = 0;    bool ok = true;
26         for (int i=1; i<=4; ++i)
27         {
28             int len = strlen (s[i]);
29             if (s[i][0] == ‘A‘)    ca[i].v = 14;
30             else if (s[i][0] == ‘J‘)    ca[i].v = 11;
31             else if (s[i][0] == ‘Q‘)    ca[i].v = 12;
32             else if (s[i][0] == ‘K‘)    ca[i].v = 13;
33             else
34             {
35                 if (len == 3)    ca[i].v = 10;
36                 else    ca[i].v = s[i][0] - ‘0‘;
37             }
38             int p = 1;    if (len == 3)    p = 2;
39             if (s[i][p] == ‘S‘)    ca[i].w = 1;
40             else if (s[i][p] == ‘H‘)    ca[i].w = 2;
41             else if (s[i][p] == ‘C‘)    ca[i].w = 3;
42             else if (s[i][p] == ‘D‘)    ca[i].w = 4;
43             if (i == 1)    pre = ca[1].w;
44             else
45             {
46                 if (ca[i].w != pre)    ok = false;        //是否四张牌都相同花色
47             }
48         }
49
50         sort (ca+1, ca+1+4, cmp);
51         int flag = 0;    bool no = false;
52         for (int i=2; i<=4; ++i)
53         {
54             if (ca[i].v - ca[i-1].v == 1)    continue;
55             else if (ca[i].v - ca[i-1].v == 2)
56             {
57                 if (!flag)    flag = i;
58                 else no = true;
59             }
60             else    no = true;
61         }
62
63         if (no)    puts ("0/1");        //若有来两个地方不是连续的则不可能是顺子
64         else
65         {
66             if (flag)        //如果在中间插入牌
67             {
68                 if (ok)    {puts ("1/16");}
69                 else {puts ("1/12");}
70             }
71             else        //两侧插牌
72             {
73                 if (ok)
74                 {
75                     if (ca[1].v == 2 || ca[4].v == 14)    puts ("1/16");
76                     else    puts ("1/8");
77                 }
78                 else
79                 {
80                     if (ca[1].v == 2 || ca[4].v == 14)    puts ("1/12");
81                     else    puts ("1/6");
82                 }
83             }
84         }
85     }
86
87     return 0;
88 }
时间: 2024-10-01 10:40:21

模拟 hihoCoder 1177 顺子的相关文章

hihocoder #1177 : 顺子 模拟

#1177 : 顺子 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://hihocoder.com/problemset/problem/1177 Description 你在赌场里玩梭哈,已经被发了4张牌,现在你想要知道发下一张牌后你得到顺子的概率是多少? 假定赌场使用的是一副牌,四种花色的A.2.3.....J.Q.K共52张,这副牌只发给你了4张,你的剩下一张牌从剩下48张中任意取出一张. 顺 子指的是点数连续的五张牌,包括10.J.Q

hihocoder 1177 : 顺子

#1177 : 顺子 时间限制:6000ms 单点时限:1000ms 内存限制:256MB 描述 你在赌场里玩梭哈,已经被发了4张牌,现在你想要知道发下一张牌后你得到顺子的概率是多少? 假定赌场使用的是一副牌,四种花色的A.2.3.....J.Q.K共52张,这副牌只发给你了4张,你的剩下一张牌从剩下48张中任意取出一张. 顺 子指的是点数连续的五张牌,包括10.J.Q.K.A这种牌型(不包含同花顺,即构成顺子的五张牌花色不能相同).参 见:https://zh.wikipedia.org/wi

ACM学习历程—Hihocoder 1177 顺子(模拟 &amp;&amp; 排序 &amp;&amp; gcd)(hihoCoder挑战赛12)

时间限制:6000ms 单点时限:1000ms 内存限制:256MB   描述 你在赌场里玩梭哈,已经被发了4张牌,现在你想要知道发下一张牌后你得到顺子的概率是多少? 假定赌场使用的是一副牌,四种花色的A.2.3.....J.Q.K共52张,这副牌只发给你了4张,你的剩下一张牌从剩下48张中任意取出一张. 顺子指的是点数连续的五张牌,包括10.J.Q.K.A这种牌型(不包含同花顺,即构成顺子的五张牌花色不能相同).参见:https://zh.wikipedia.org/wiki/%E6%92%B

hihoCoder挑战赛12 顺子(hihocoder 1177)

题目链接:http://hihocoder.com/problemset/problem/1177 题面: #1177 : 顺子 时间限制:6000ms 单点时限:1000ms 内存限制:256MB 描述 你在赌场里玩梭哈,已经被发了4张牌,现在你想要知道发下一张牌后你得到顺子的概率是多少? 假定赌场使用的是一副牌,四种花色的A.2.3.....J.Q.K共52张,这副牌只发给你了4张,你的剩下一张牌从剩下48张中任意取出一张. 顺子指的是点数连续的五张牌,包括10.J.Q.K.A这种牌型(不包

Hihocoder 顺子

#1177 : 顺子 时间限制:6000ms 单点时限:1000ms 内存限制:256MB 描述 你在赌场里玩梭哈,已经被发了4张牌,现在你想要知道发下一张牌后你得到顺子的概率是多少? 假定赌场使用的是一副牌,四种花色的A.2.3.....J.Q.K共52张,这副牌只发给你了4张,你的剩下一张牌从剩下48张中任意取出一张. 顺子指的是点数连续的五张牌,包括10.J.Q.K.A这种牌型(不包含同花顺,即构成顺子的五张牌花色不能相同).参见:https://zh.wikipedia.org/wiki

hihoCoder 1392 War Chess 【模拟】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛)

#1392 : War Chess 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 Rainbow loves to play kinds of War Chess games. There are many famous War Chess games such as "Biography of Cao Cao", "Anecdotes of Wagang Mountain", etc. In this problem, let's c

hihoCoder #1053 : 居民迁移(贪心,二分搜索,google在线技术笔试模拟)

#1053 : 居民迁移 时间限制:3000ms 单点时限:1000ms 内存限制:256MB 描述 公元2411年,人类开始在地球以外的行星建立居住点.在第1326号殖民星上,N个居住点分布在一条直线上.为了方便描述,我们设第i个居住点的位置是Xi,其中居住着Yi位居民.随着冬季的到来,一些人口较多的居住点的生态循环系统已经开始超负荷运转.为了顺利度过严冬,殖民星上的居民一致同意通过转移到人口较少的居住点来减轻人口众多的居住点的负荷. 遗憾的是,1326殖民星的环境非常恶劣.在冬季到来前,每个

【hihocoder 1039 字符串消除】模拟

题目链接:http://hihocoder.com/problemset/problem/1039 题意:给定一个只由{A, B, C}组成的字符串s,长度为n, 故包含n+1个空隙:现要求在某个空隙插入一个来自{A, B, C}的字符,然后按照以下“消除规则”对插入后的字符串进行消除操作,问最多能消掉几个字符(包含插入的一个). 消除规则: 1. 自左至右扫描当前字符串,若字符v从某个位置开始连续出现了2次及以上,则此区间内的v全部消除: 2. 重复步骤1直至不再有可消除的字符. 思路:模拟,

hihoCoder - 1039 - 字符消除 (模拟题~)

#1039 : 字符消除 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi最近在玩一个字符消除游戏.给定一个只包含大写字母"ABC"的字符串s,消除过程是如下进行的: 1)如果s包含长度超过1的由相同字母组成的子串,那么这些子串会被同时消除,余下的子串拼成新的字符串.例如"ABCCBCCCAA"中"CC","CCC"和"AA"会被同时消除,余下"AB"和