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、K、A这种牌型(不包含同花顺,即构成顺子的五张牌花色不能相同)。参 见:https://zh.wikipedia.org/wiki/%E6%92%B2%E5%85%8B%E7%89%8C%E5%9E %8B#.E7.89.8C.E5.9E.8B
Input
一行四个被空格隔开的长度为2或3的字符串,XY,表示你手里的牌。
X为2~10、J、Q、K、A中一个,表示点数,Y为S、H、C、D分别表示黑桃、红心、梅花和方块。
Output
一行一个分数表示概率,注意你的分数需为最简分数,若答案为0输出0/1。
Sample Input
10S JS QS KD
Sample Output
1/6
HINT
题意
题解:
直接模拟就好了,注意花色必须不全部相同
代码:
#include <cstdio>
#include <cmath>
#include <cstring>
#include <ctime>
#include <iostream>
#include <algorithm>
#include <set>
#include <vector>
#include <sstream>
#include <queue>
#include <typeinfo>
#include <fstream>
#include <map>
#include <stack>
typedef long long ll;
using namespace std;
//freopen("D.in","r",stdin);
//freopen("D.out","w",stdout);
#define sspeed ios_base::sync_with_stdio(0);cin.tie(0)
#define test freopen("test.txt","r",stdin)
#define maxn 100001
#define mod 10007
#define eps 1e-9
const int inf=0x3f3f3f3f;
const ll infll = 0x3f3f3f3f3f3f3f3fLL;
inline ll read()
{
ll x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
//************************************************************************************** //A、2、3、...、J、Q、K
int gcd(int a,int b)
{
if(b==) return a;
return gcd(b,a%b);
}
int lcm(int a,int b)
{
int c=gcd(a,b);
return a*b/c;
}
struct node
{
int x,y;
};
bool cmp(node a,node b)
{
return a.x<b.x;
};
string s[];
vector<node> q;
vector<node> a;
int num[][];
int main()
{
for(int i=;i<;i++)
cin>>s[i];
for(int i=;i<;i++)
{
int mmm=;
if(s[i][s[i].size()-]=='S')
mmm=;
else if(s[i][s[i].size()-]=='H')
mmm=;
else if(s[i][s[i].size()-]=='C')
mmm=;
else if(s[i][s[i].size()-]=='D')
mmm=;
if(s[i][]=='A')
{
q.push_back((node){,mmm});
num[][mmm]++;
}
else if(s[i][]=='J')
{
q.push_back((node){,mmm});
num[][mmm]++;
}
else if(s[i][]=='Q')
{
q.push_back((node){,mmm});
num[][mmm]++;
}
else if(s[i][]=='K')
{
q.push_back((node){,mmm});
num[][mmm]++;
}
else if(s[i][]==''&&s[i][]=='')
{
q.push_back((node){,mmm});
num[][mmm]++;
}
else
{
q.push_back((node){s[i][]-'',mmm});
num[s[i][]-''][mmm]++;
}
}
int ans=;
for(int i=;i<=;i++)
{
int tt=;
while(tt<=)
{
if(num[i][tt])
tt++;
a.clear();
for(int j=;j<;j++)
a.push_back(q[j]);
a.push_back((node){i,tt});
sort(a.begin(),a.end(),cmp);
int flag=;
for(int j=;j<;j++)
{
if(a[j].x!=a[j+].x-)
break;
if(j==)
flag++;
}
if(flag==)
{
for(int j=;j<;j++)
{
for(int kiss=j+;kiss<;kiss++)
{
if(a[j].y!=a[kiss].y)
{
flag=;
ans++;
}
if(flag==)
break;
}
if(flag==)
break;
}
}
tt++;
}
}
int kk=ans,mm=;
int t=gcd(kk,mm);
kk/=t;
mm/=t;
printf("%d/%d",kk,mm);
}
hihocoder #1177 : 顺子 模拟的更多相关文章
- ACM学习历程—Hihocoder 1177 顺子(模拟 && 排序 && gcd)(hihoCoder挑战赛12)
时间限制:6000ms 单点时限:1000ms 内存限制:256MB 描述 你在赌场里玩梭哈,已经被发了4张牌,现在你想要知道发下一张牌后你得到顺子的概率是多少? 假定赌场使用的是一副牌,四种 ...
- 模拟 hihoCoder 1177 顺子
题目传送门 /* 模拟:简单的照着规则做就可以了,把各种情况考虑到,虽然比赛写的丑了点,但能1Y还是很开心的:) */ #include <cstdio> #include <cst ...
- hihocoder 1177 : 顺子
#1177 : 顺子 时间限制:6000ms 单点时限:1000ms 内存限制:256MB 描述 你在赌场里玩梭哈,已经被发了4张牌,现在你想要知道发下一张牌后你得到顺子的概率是多少? 假定赌场使用的 ...
- hihoCoder 1392 War Chess 【模拟】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛)
#1392 : War Chess 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 Rainbow loves to play kinds of War Chess gam ...
- 【hihocoder 1039 字符串消除】模拟
题目链接:http://hihocoder.com/problemset/problem/1039 题意:给定一个只由{A, B, C}组成的字符串s,长度为n, 故包含n+1个空隙:现要求在某个空隙 ...
- hihoCoder #1053 : 居民迁移(贪心,二分搜索,google在线技术笔试模拟)
#1053 : 居民迁移 时间限制:3000ms 单点时限:1000ms 内存限制:256MB 描述 公元2411年,人类开始在地球以外的行星建立居住点.在第1326号殖民星上,N个居住点分布在一条直 ...
- 九度OJ 1355:扑克牌顺子 (模拟)
时间限制:2 秒 内存限制:32 兆 特殊判题:否 提交:1676 解决:484 题目描述: LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^). ...
- hihocoder #1616 : 是二叉搜索树吗?(模拟题)
题目链接:http://hihocoder.com/problemset/problem/1616 题解:就是简单的模拟一下至于如何判断是不是二叉搜索树可以通过中序遍历将每个点存下来看是不是递增的如果 ...
- hihocoder 1489(微软2017, 数学,模拟)
题目链接:http://hihocoder.com/problemset/problem/1489?sid=1587434 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 ...
随机推荐
- hdu 4508 湫湫系列故事——减肥记I(完全背包)
题意:完全背包 思路:完全背包 可以直接转化为 多重背包,num[i]=_v/c[i];//转为多重背包然后运用 多重背包 3种解法如下码1: #include<iostream> #in ...
- selenium python (四)键盘事件
#!/usr/bin/python# -*- coding: utf-8 -*-__author__ = 'zuoanvip' #在实际测试过程中,有时候我们需要使用tab键将焦点转移到下一个需要操作 ...
- [转]Linux文件权限详解
转自:http://blog.chinaunix.net/uid-25052030-id-174343.html 在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问 ...
- 图算法之Floyd-Warshall 算法-- 任意两点间最小距离
1.Floyd-Warshall 算法 给定一张图,在o(n3)时间内求出任意两点间的最小距离,并可以在求解过程中保存路径 2.Floyd-Warshall 算法概念 这是一个动态规划的算法. 将顶点 ...
- yum 安装 php5.6 和 mysql5.6
安装 PHP rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm; rpm - ...
- SharePoint咨询师之路:设计之前的那些事二:规模
提示:本系列只是一个学习笔记系列,大部分内容都可以从微软官方网站找到,本人只是按照自己的学习路径来学习和呈现这些知识. 有些内容是自己的经验和积 累,如果有不当之处,请指正. 咨询师更多的时候是解决方 ...
- 【转】Hive学习路线图
原文博客出自于:http://blog.fens.me/hadoop-hive-roadmap/ 感谢! Hive学习路线图 Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Ha ...
- Struts2文件下载
1). Struts2 中使用 type="stream" 的 result 进行下载 2). 可以为 stream 的 result 设定如下参数 contentType: 结果 ...
- HDU 5867 Water problem (模拟)
Water problem 题目链接: http://acm.split.hdu.edu.cn/showproblem.php?pid=5867 Description If the numbers ...
- [转载]开机出现A disk read error occurred错误
[此文章转载] 今天维修了一台机器,郁闷之极.最开始一直无法正确安装操作系统,一安装总是提示文件无法写入内存.换了光盘.光驱都无济于事,忽然意识到是不是内存的问题,随即找了一个内存来,替换了一下,更郁 ...