题目描述

炸金花是一个风靡全球的扑克游戏,不少人因为这个游戏发了家,而更多的人则输得倾家荡产。为了帮助赌徒们戒掉它,现在决定派你去写一个程序,帮助赌徒们更好的认识这个游戏。

炸金花在这里被简化成这样一个情况:每一个人都会得到随机派发的三张牌(每张牌的点数为整数区间[1,9]中的某个数,点数相同的牌最多只有4张),然后比较大小。

比较大小的方式是这样的:

① 豹子:即三张点数一样的牌,若双方都为豹子,则点数大者为大,豹子大于任何其他情况;

② 顺子:即三张点数连续递增的牌,比如(4,5,6),(1,2,3),若双方都是顺子,点数大者为大,顺子大于对子和单张;

③ 对子:即两张点数一样的牌带一张单牌,比如(1,1,4),(2,2,5),若双方都是对子,则成对的牌点数大者为大,如果那一对也一样,则比较单张的大小,对子大于单张;

④ 单张:即三张牌不是上述的三种。单张的比较大小方式是,先比较点数最大的,再比较点数第二大的,再比较点数第三大的。

需要注意的是一个特殊情况,那就是,2,3,5比大部分牌都小,但是比豹子大。

你的任务是,对于对手的给定的一种情况,告诉赌徒,有多少种情况可以赢对方。(4,5,6及5,4,6这样算一种情况)

输入

有多组输入数据,第一行为一个数字T,代表有T组输入数据 (0<T≤1000)。

接下来为T组数据,每组数据占一行,为3个整数,表示对手的拿牌情况。

输出

对于每组数据,在一行上输出一个整数,表示赢得对手的情况数。

--正文

直接一种种情况考虑过去就好

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std; int card[];
int danzhang[] = {,,,,,,,,,};
long long ans = ; bool cmp(int a,int b){
return (a <= b);
} void Solve(){
ans = ;
sort(card+,card+,cmp);
if (card[] == card[]) {
if (card[] == card[]){ // baozi
ans = ( - card[]) + ;
}
else { //duizi
int tmp1 = (-card[]) + *(-card[]); // duizi bi ta da
int tmp2 = ; // shunzi
int tmp3 = ; // baozi
ans = tmp1 + tmp2 + tmp3;
}
}
else {
if (card[] == card[]){ //duizi
int tmp1 = (-card[]) + *(-card[]); // tongshang
int tmp2 = ;
int tmp3 = ;
ans = tmp1 + tmp2 + tmp3;
}
else {
if (card[] == card[] + && card[] == card[] + ){ //shunzi
int tmp1 = - card[]; // shunzi
int tmp2 = ;
ans = tmp1 + tmp2;
}
else { //danzhang
int tmp1 = ,i;
if (card[] == card[] - ){
tmp1 = card[] - card[] - ;
}
else
tmp1 = card[] - card[] - ;
for (i=card[]+;i<card[]-;i++){
tmp1 += i - ;
}
if (card[] < card[] - )
tmp1 += card[] - ;
for (i=card[]+;i<=;i++){
tmp1 += danzhang[i];
}
int tmp2 = ; // duizi
int tmp3 = ; // shunzi
int tmp4 = ; // baozi
ans = tmp1 + tmp2 + tmp3 + tmp4;
}
}
}
} int main(){
int time,T;
scanf("%d",&T); for (time=;time<=T;time++){
scanf("%d %d %d",&card[],&card[],&card[]);
//printf("%d %d %d",card[0],card[1],card[2]);
Solve();
printf("%lld\n",ans);
} return ;
}

XidianOJ 1044 炸金花的更多相关文章

  1. 200行代码搞定炸金花游戏(PHP版)

    <?php/* * 游戏名称:炸金花(又名三张牌.扎金花) * 开发时间:2009.1.14 * 编 程:多菜鸟 * 来 源:http://blog.csdn.net/kingerq/archi ...

  2. 炸金花的JS实现从0开始之 -------现在什么都不会(1)

    新年结束了.回想起来唯一留下乐趣的就是在家和朋友玩玩炸金花. 遂有此文. 对不起,我这时候还没有思路. 让我捋一捋. ... ... 捋一捋啊... ... 好了.今天先这样吧: (1)先整理出所有的 ...

  3. 炸金花游戏(4)--炸金花AI基准测试评估

    前言: 本文将谈谈如何评估测试炸金花的AI, 其实这个也代表一类的问题, 德州扑克也是类似的解法. 本文将谈谈两种思路, 一种是基于基准AI对抗评估, 另一种是基于测试集(人工选定牌谱). 由于炸金花 ...

  4. 炸金花游戏(3)--基于EV(期望收益)的简单AI模型

    前言: 炸金花这款游戏, 从技术的角度来说, 比德州差了很多. 所以他的AI模型也相对简单一些. 本文从EV(期望收益)的角度, 来尝试构建一个简单的炸金花AI. 相关文章: 德州扑克AI--Prog ...

  5. 品鉴同事发来的炸金花的PHP程序代码

    今天同事发来了一个炸金花的PHP程序,这个代码实现了两个人通过各自的三张牌进行权重计算,得到分数进行比较得到谁的牌大,我觉得里面还有一些问题,代码如下: <?php /** 每张牌的分值为一个2 ...

  6. 自己写的微信小程序炸金花简单版

    app.json: { "pages":[ "pages/index/index" ], "window":{ "navigati ...

  7. akoj-1222-炸金花

    炸金花 Time Limit:1000MS  Memory Limit:65536K Total Submit:40 Accepted:19 Description 炸金花是一个风靡全球的扑克游戏,喜 ...

  8. IOS本地化。

    1,项目名本地化 点击项目,蓝色图标->info 最下面+号,添加chinese本地化. Supporting Files->infoPlist.strings 下会有两个文件,有一个是设 ...

  9. 【Android病毒分析报告】 - ZxtdPay 吸费恶魔

    本文章由Jack_Jia编写,转载请注明出处.  文章链接:http://blog.csdn.net/jiazhijun/article/details/11581543 作者:Jack_Jia    ...

随机推荐

  1. MS SQL执行大脚本文件时,提示“内存不足”的解决办法()

    问题描述: 当客户服务器不允许直接备份时,往往通过导出数据库脚本的方式来部署-还原数据库, 但是当数据库导出脚本很大,用Microsoft SQL Server Management Studio执行 ...

  2. ASP.NET: 正在中止线程 错误原及解决方法

    #[操作记录]:2010-02-23 9:25:12  System.Threading.ThreadAbortException: 正在中止线程. 症状 如果使用 Response.End.Resp ...

  3. MyBatis学习(二)、SQL语句映射文件(2)增删改查、参数、缓存

    二.SQL语句映射文件(2)增删改查.参数.缓存 2.2 select 一个select 元素非常简单.例如: <!-- 查询学生,根据id --> <select id=" ...

  4. C# 字符串 数据类型 判断 与特定规则验证

    验证字符串格式 1)判断字符串是否是常见数据类型,decimal,foalt,double,datetime,int等等 2)验证字符串符合特定规则    (1)邮箱地址,IP地址     (2)纯数 ...

  5. eclipse 安装svn插件

    1.下载最新的Eclipse,我的版本是3.7.2 indigo(Eclipse IDE for Java EE Developers)版    如果没有安装的请到这里下载安装:http://ecli ...

  6. php 二维数组排序,多维数组排序

    对2维数组或者多维数组排序是常见的问题,在php中我们有个专门的多维数组排序函数,下面简单介绍下: array_multisort(array1,sorting order, sorting type ...

  7. AIX上增加逻辑卷时报错误0516-787 extendlv: Maximum allocation for logical volume

    AIX上增加逻辑卷时报错误0516-787 extendlv: Maximum allocation for logical volume jdelv02 is 512. 在往aix使用chfs -a ...

  8. LogBack,升级版的log4J

    <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE log4j:configuration SYS ...

  9. cordova + ionic 使用中碰到的一些问题

    cordova + ionic 使用中碰到的一些问题     No Content-Security-Policy meta tag found. Please add one when using ...

  10. Linux 网络基本配置

    一.Linux网络配置文件 1.  /etc/sysconfig/network-scripts/ifcfg-eth0 文件 在Red Hat系统中,系统网络设备的配置文件保存在/etc/syscon ...