XidianOJ 1044 炸金花
题目描述
炸金花是一个风靡全球的扑克游戏,不少人因为这个游戏发了家,而更多的人则输得倾家荡产。为了帮助赌徒们戒掉它,现在决定派你去写一个程序,帮助赌徒们更好的认识这个游戏。
炸金花在这里被简化成这样一个情况:每一个人都会得到随机派发的三张牌(每张牌的点数为整数区间[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 炸金花的更多相关文章
- 200行代码搞定炸金花游戏(PHP版)
<?php/* * 游戏名称:炸金花(又名三张牌.扎金花) * 开发时间:2009.1.14 * 编 程:多菜鸟 * 来 源:http://blog.csdn.net/kingerq/archi ...
- 炸金花的JS实现从0开始之 -------现在什么都不会(1)
新年结束了.回想起来唯一留下乐趣的就是在家和朋友玩玩炸金花. 遂有此文. 对不起,我这时候还没有思路. 让我捋一捋. ... ... 捋一捋啊... ... 好了.今天先这样吧: (1)先整理出所有的 ...
- 炸金花游戏(4)--炸金花AI基准测试评估
前言: 本文将谈谈如何评估测试炸金花的AI, 其实这个也代表一类的问题, 德州扑克也是类似的解法. 本文将谈谈两种思路, 一种是基于基准AI对抗评估, 另一种是基于测试集(人工选定牌谱). 由于炸金花 ...
- 炸金花游戏(3)--基于EV(期望收益)的简单AI模型
前言: 炸金花这款游戏, 从技术的角度来说, 比德州差了很多. 所以他的AI模型也相对简单一些. 本文从EV(期望收益)的角度, 来尝试构建一个简单的炸金花AI. 相关文章: 德州扑克AI--Prog ...
- 品鉴同事发来的炸金花的PHP程序代码
今天同事发来了一个炸金花的PHP程序,这个代码实现了两个人通过各自的三张牌进行权重计算,得到分数进行比较得到谁的牌大,我觉得里面还有一些问题,代码如下: <?php /** 每张牌的分值为一个2 ...
- 自己写的微信小程序炸金花简单版
app.json: { "pages":[ "pages/index/index" ], "window":{ "navigati ...
- akoj-1222-炸金花
炸金花 Time Limit:1000MS Memory Limit:65536K Total Submit:40 Accepted:19 Description 炸金花是一个风靡全球的扑克游戏,喜 ...
- IOS本地化。
1,项目名本地化 点击项目,蓝色图标->info 最下面+号,添加chinese本地化. Supporting Files->infoPlist.strings 下会有两个文件,有一个是设 ...
- 【Android病毒分析报告】 - ZxtdPay 吸费恶魔
本文章由Jack_Jia编写,转载请注明出处. 文章链接:http://blog.csdn.net/jiazhijun/article/details/11581543 作者:Jack_Jia ...
随机推荐
- [zz]谱聚类
了凡春秋USTC 谱聚类 http://chunqiu.blog.ustc.edu.cn/?p=505 最近忙着写文章,好久不写博客了.最近看到一个聚类方法--谱聚类,号称现代聚类方法,看到它简洁的公 ...
- 【Telnet】使用Telnet协议连接到远程Shell执行脚本
介绍 本文介绍如何通过Telnet协议连接到远程Shell,执行脚本,并获取执行结果: 相关文章: <[Jsch]使用SSH协议连接到远程Shell执行脚本>http://www.cnbl ...
- nodeJS---express4+passport实现用户注册登录验证
网上有很多关于passport模块使用方法的介绍,不过基本上都是基于express3的,本文介绍在express4框架中使用passport模块. 前言 passport是一个功能单一,但非常强大的一 ...
- Best Practices for Background Jobs_3 Managing Device Awake State之电源锁、Alarm、WakefulBroadcastReceiver
http://developer.android.com/training/scheduling/index.html 当静置一个设备的时候,先会屏幕变暗,然后关闭屏幕,最后关闭CPU,以省电.但有的 ...
- oracle 导库建立测试库
由于客户要定制的关系,需要对产品的数据进行相关的修改,所以需要复制原来的库出来,然后在此基础上再进行修改.步骤如下: 在PL/SQL下操作: /*分为四步 *//*第1步:创建临时表空间 */cre ...
- jQuery源码:从原理到实战
jQuery源码:从原理到实战 jQuery选择器对象 $(".my-class"); document.querySelectorAll*".my-class" ...
- MVC+EasyUI 菜单导航的实现
一个简单的使用mvc+easyUi 动态菜单显示 直接上代码 前端 function initMenu() { $.get("/Admin/Home/GetNav", functi ...
- HotSpot 自动内存管理笔记与实战
1.对象的创建 虚拟机遇到一条new指令时,首先会去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载.解析和初始化过.如果没有,则必须先进行相应的类的 ...
- asp.net webform 中使用Microsoft ASP.NET Web Optimization压缩js及css
使用静态资源压缩可以合并静态资源文件减少客户端请求数量,压缩文件大小,减少网络流量的损耗. 注:只有通过web.config关闭调试功能,压缩才会生效 <system.web> <c ...
- 高级搜索插件solis search在umbraco中的使用
好久没有写关于umbraco的博客了,这段时间在研究solis search,感觉它太强大,好东西是需要分享的,所以写一篇简单的使用博客分享给个人umbraco爱好者. 简介 在了解solis sea ...