模拟 hihoCoder 1177 顺子
/*
模拟:简单的照着规则做就可以了,把各种情况考虑到,虽然比赛写的丑了点,但能1Y还是很开心的:)
*/
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std; const int MAXN = 1e2 + ;
const int INF = 0x3f3f3f3f;
struct Card
{
int v, w;
}ca[];
char s[][]; bool cmp(Card x, Card y) {return x.v < y.v;} int main(void) //hihoCoder 1177 顺子
{
while (scanf ("%s %s %s %s", s[], s[], s[], s[]) == )
{
int pre = ; bool ok = true;
for (int i=; i<=; ++i)
{
int len = strlen (s[i]);
if (s[i][] == 'A') ca[i].v = ;
else if (s[i][] == 'J') ca[i].v = ;
else if (s[i][] == 'Q') ca[i].v = ;
else if (s[i][] == 'K') ca[i].v = ;
else
{
if (len == ) ca[i].v = ;
else ca[i].v = s[i][] - '';
}
int p = ; if (len == ) p = ;
if (s[i][p] == 'S') ca[i].w = ;
else if (s[i][p] == 'H') ca[i].w = ;
else if (s[i][p] == 'C') ca[i].w = ;
else if (s[i][p] == 'D') ca[i].w = ;
if (i == ) pre = ca[].w;
else
{
if (ca[i].w != pre) ok = false; //是否四张牌都相同花色
}
} sort (ca+, ca++, cmp);
int flag = ; bool no = false;
for (int i=; i<=; ++i)
{
if (ca[i].v - ca[i-].v == ) continue;
else if (ca[i].v - ca[i-].v == )
{
if (!flag) flag = i;
else no = true;
}
else no = true;
} if (no) puts ("0/1"); //若有来两个地方不是连续的则不可能是顺子
else
{
if (flag) //如果在中间插入牌
{
if (ok) {puts ("1/16");}
else {puts ("1/12");}
}
else //两侧插牌
{
if (ok)
{
if (ca[].v == || ca[].v == ) puts ("1/16");
else puts ("1/8");
}
else
{
if (ca[].v == || ca[].v == ) puts ("1/12");
else puts ("1/6");
}
}
}
} return ;
}
模拟 hihoCoder 1177 顺子的更多相关文章
- hihocoder #1177 : 顺子 模拟
#1177 : 顺子 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://hihocoder.com/problemset/problem/1177 ...
- hihocoder 1177 : 顺子
#1177 : 顺子 时间限制:6000ms 单点时限:1000ms 内存限制:256MB 描述 你在赌场里玩梭哈,已经被发了4张牌,现在你想要知道发下一张牌后你得到顺子的概率是多少? 假定赌场使用的 ...
- ACM学习历程—Hihocoder 1177 顺子(模拟 && 排序 && gcd)(hihoCoder挑战赛12)
时间限制:6000ms 单点时限:1000ms 内存限制:256MB 描述 你在赌场里玩梭哈,已经被发了4张牌,现在你想要知道发下一张牌后你得到顺子的概率是多少? 假定赌场使用的是一副牌,四种 ...
- NOIP 2015 提高组 Day1
期望得分:100+100+100=300 实际得分:100+100+45=245 T3 相似的代码 复制过去 没有改全,痛失55分 http://www.cogs.pro/cogs/page/page ...
- 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 题解:就是简单的模拟一下至于如何判断是不是二叉搜索树可以通过中序遍历将每个点存下来看是不是递增的如果 ...
随机推荐
- 进程(WINAPI),遍历并查找树状的进程信息,实现控制系统进程
#include <TlHelp32.h> //检索系统全部进程 void showall() { PROCESSENTRY32 pe32 = {0}; pe32.dwSize = siz ...
- 转: eclipse 快捷键列表(功能清晰版本)
转自: http://www.uml.org.cn/mobiledev/201110092.asp Eclipse 在开发中使用到的快捷键很实用噢 Ctrl+1 快速修复(最经典的快捷键,就不用多说了 ...
- 纠结的链接——ln、ln -s、fs.symlink、require
纠结的链接--ln.ln -s.fs.symlink.require 提交 我的留言 加载中 已留言 inode 我们首先来看看 linux 系统里面的一个重要概念:inode. 我们知道,文件存储在 ...
- HTC 328T 提示手机存储不足 out of space怎么办
不要再用什么软件做优化,做清理,都是治标不治本啊. 1 用豌豆荚备份数据 2 手机恢复出厂设置 3 用豌豆荚恢复数据
- 题目1011:最大连续子序列 O(n)
题目大意:给出一系列的数字.要求你输出这些数字的最大连续和,并输出构成这个最大连续和的第一个数和最后一个数 解题思路:用一个变量维护最大连续和 假设当前这个变量小于0的话,就表示这个变量仅仅会拉低连续 ...
- js 判断对象中所有属性是否为空
测试: var obj = {a:"123",b:""}; for(var key in obj){ if(!obj[key]) return; } 函数封装: ...
- 数据结构-二叉树的遍历(类C语言描写叙述)
遍历概念 所谓遍历(Traversal)是指沿着某条搜索路线.依次对树中每一个结点均做一次且仅做一次訪问.訪问结点所做的操作依赖于详细的应用问题. 遍历是二叉树上最重要的运算之中的一个,是二叉 ...
- TPC-H is a Decision Support Benchmark
TPC-H is a Decision Support Benchmark http://www.dba-oracle.com/t_tpc_benchmarks.htm
- 【BZOJ 2456】 mode
[题目链接] 点击打开链接 [算法] 此题初看是大水题,只需调用std :: sort即可 但是,n最大500000,显然会超时 而且,内存限制1MB,我们连数组也开不了! 那怎么做呢 ? 我们发现, ...
- AutoIT: ControlSetText
1. ControlSetText :可以摆脱Send的限制,在适当的文本框位置输入用户想要输入的信息.2. ControlGetText可以获取文本 Run("notepad.exe&qu ...