昨天晚上写的,写了一个多小时,9000+B,居然1A了,爽。

题意:玩扑克,比大小。规则如下:

题意很简单,看过赌神的人都知道,每人手中5张排,比牌面大小,牌面由大到小分别是(这里花色无大小),级别从高到低依次为:
1.同花顺:牌面一样,只比较最大的看谁大,一样大则平手
2.四条:四个一样的,看这四个一样的中谁大谁赢
3.葫芦:三条+一对,看三条中谁的牌面大
4.同花:都是同花就按从大到小比较,看谁的更大
5.顺子:都是顺子看最大的谁大,一样则平手
6.三条:三条看三条中谁的牌面大
7.两对: 两对就看谁的对子大,都一样大比单牌
8.一对: 比对子,一样则比单牌
9.单排:按顺序比较大小,大者胜

知道规则了就搞就行了。

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
#define N 100007

struct node
{
    int num,suit;
}a[],b[];
],SecondPair[],Remain[];
][];
][];  

int cmp(node ka,node kb)
{
    return ka.num < kb.num;
}

pair<int,int> solve(node a[],int tag)
{
    int i,j;
    sort(a,a+,cmp);
    ;
    ;
    ;
    ;i<;i++)
    {
        ].suit)
            break;
    }
    )
    {
        ;j<;j++)
        {
            ].num+)
                break;
        }
        )
            ].num);
    }

    level--;
    ].num == a[].num && a[].num == a[].num && a[].num == a[].num)||(a[].num == a[].num && a[].num == a[].num && a[].num == a[].num))
    {
        ].num == a[].num)
            ].num);
        ].num == a[].num)
            ].num);
    }

    level--;
    ].num == a[].num && a[].num == a[].num && a[].num == a[].num)
        ].num);
    ].num == a[].num && a[].num == a[].num && a[].num == a[].num)
        ].num);

    level--;
    ].suit == a[].suit && a[].suit == a[].suit && a[].suit == a[].suit && a[].suit == a[].suit)
    {
        k[][tag] = a[].num;
        k[][tag] = a[].num;
        k[][tag] = a[].num;
        k[][tag] = a[].num;
        k[][tag] = a[].num;
        ].num);
    }

    level--;
    ;i<;i++)
    {
        ].num+)
            break;
    }
    )
        ].num);

    level--;
    ;
    ;i>=;i--)
    {
        ].num)
        {
            cnt++;
            )
                return make_pair(level,a[i].num);
        }
        else
            cnt = ;
    }

    level--;
    ].num == a[].num && a[].num == a[].num)
    {
        BigstPair[tag] = a[].num;
        SecondPair[tag] = a[].num;
        Remain[tag] = a[].num;
        return make_pair(level,BigstPair[tag]);
    }
    ].num == a[].num && a[].num == a[].num)
    {
        BigstPair[tag] = a[].num;
        SecondPair[tag] = a[].num;
        Remain[tag] = a[].num;
        return make_pair(level,BigstPair[tag]);
    }
    ].num == a[].num && a[].num == a[].num)
    {
        BigstPair[tag] = a[].num;
        SecondPair[tag] = a[].num;
        Remain[tag] = a[].num;
        return make_pair(level,BigstPair[tag]);
    }

    level--;
    ].num == a[].num)
    {
        m[][tag] = a[].num;
        m[][tag] = a[].num;
        m[][tag] = a[].num;
        m[][tag] = a[].num;
        ][tag]);
    }
    ].num == a[].num)
    {
        m[][tag] = a[].num;
        m[][tag] = a[].num;
        m[][tag] = a[].num;
        m[][tag] = a[].num;
        ][tag]);
    }
    ].num == a[].num)
    {
        m[][tag] = a[].num;
        m[][tag] = a[].num;
        m[][tag] = a[].num;
        m[][tag] = a[].num;
        ][tag]);
    }
    ].num == a[].num)
    {
        m[][tag] = a[].num;
        m[][tag] = a[].num;
        m[][tag] = a[].num;
        m[][tag] = a[].num;
        ][tag]);
    }
    //9 High Cards
    level--;
    k[][tag] = a[].num;
    k[][tag] = a[].num;
    k[][tag] = a[].num;
    k[][tag] = a[].num;
    k[][tag] = a[].num;
    ][tag]);
}

int compare(pair<int,int> ka,pair<int,int> kb)
{
    if(ka.first == kb.first)
    {
         || ka.first == )  //flush or high card
        {
            ][] == k[][])
            {
                ][] == k[][])
                {
                    ][] == k[][])
                    {
                        ][] == k[][])
                        {
                            ][] == k[][])
                                ;
                            ][] > k[][])
                                ;
                            else
                                ;
                        }
                        ][] > k[][])
                            ;
                        else
                            ;
                    }
                    ][] > k[][])
                        ;
                    else
                        ;
                }
                ][] > k[][])
                    ;
                else
                    ;
            }
            ][] > k[][])
                ;
            else
                ;
        }
        )  //two pair
        {
            ] == BigstPair[])
            {
                ] == SecondPair[])
                {
                    ] == Remain[])
                        ;
                    ] > Remain[])
                        ;
                    else
                        ;
                }
                ] > SecondPair[])
                    ;
                else
                    ;
            }
            ] > BigstPair[])
                ;
            else
                ;
        }
        )  //pair
        {
            ][] == m[][])
            {
                ][] == m[][])
                {
                    ][] == m[][])
                    {
                        ][] == m[][])
                            ;
                        ][] > m[][])
                            ;
                        else
                            ;
                    }
                    ][] > m[][])
                        ;
                    else
                        ;
                }
                ][] > m[][])
                    ;
                else
                    ;
            }
            ][] > m[][])
                ;
            else
                ;
        }
        else
        {
            if(ka.second == kb.second)
                ;
            else if(ka.second > kb.second)
                ;
            else
                ;
        }
    }
    else
    {
        if(ka.first > kb.first)
            ;
        else if(ka.first < kb.first)
            ;
    }
}

int main()
{
    int i,j;
    ][];
    ])!=EOF)
    {
        ;i<;i++)
            scanf("%s",ss[i]);
        ;i<;i++)
        {
            ];
            ];
            ')
                a[i].num = pre-';
            else if(pre == 'T')
                a[i].num = ;
            else if(pre == 'J')
                a[i].num = ;
            else if(pre == 'Q')
                a[i].num = ;
            else if(pre == 'K')
                a[i].num = ;
            else if(pre == 'A')
                a[i].num = ;
            // 0:C  1:D  2:H  3:S
            if(back == 'C')
                a[i].suit = ;
            else if(back == 'D')
                a[i].suit = ;
            else if(back == 'H')
                a[i].suit = ;
            else
                a[i].suit = ;
        }
        ;i<;i++)
        {
            ];
            ];
            ')
                b[i-].num = pre-';
            else if(pre == 'T')
                b[i-].num = ;
            else if(pre == 'J')
                b[i-].num = ;
            else if(pre == 'Q')
                b[i-].num = ;
            else if(pre == 'K')
                b[i-].num = ;
            else if(pre == 'A')
                b[i-].num = ;
            // 0:C  1:D  2:H  3:S
            if(back == 'C')
                b[i-].suit = ;
            else if(back == 'D')
                b[i-].suit = ;
            else if(back == 'H')
                b[i-].suit = ;
            else
                b[i-].suit = ;
        }
        ),solve(b,));
        )
            puts("Black wins.");
        )
            puts("Tie.");
        else
            puts("White wins.");
    }
    ;
}

ZOJ 1111 Poker Hands --复杂模拟的更多相关文章

  1. ZOJ 1111 Poker Hands

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1111 A poker hand consists of 5 ca ...

  2. UVALive 3486/zoj 2615 Cells(栈模拟dfs)

    这道题在LA是挂掉了,不过还好,zoj上也有这道题. 题意:好大一颗树,询问父子关系..考虑最坏的情况,30w层,2000w个点,询问100w次,貌似连dfs一遍都会TLE. 安心啦,这肯定是一道正常 ...

  3. ZOJ 3326 An Awful Problem 模拟

    只有在 Month 和 Day 都为素数的时候才能得到糖 那就模拟一遍时间即可. //#pragma comment(linker, "/STACK:16777216") //fo ...

  4. ZOJ 2476 Total Amount 字符串模拟

    - Total Amount Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Submit ...

  5. zoj 3314 CAPTCHA(纯模拟)

    题目 有些人用深搜写的,当然我这弱弱的,只理解纯模拟... 纯模拟,第一次写了那么长的代码,我自己也是够坚韧不拔的,,,,必须留念啊!!! 注意,G包含C,E包含L,R包含P,(照图说O应该不包含C, ...

  6. ZOJ 2477 Magic Cube 暴力,模拟 难度:0

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1477 用IDA*可能更好,但是既然时间宽裕数据简单,而且记录状态很麻烦,就直接 ...

  7. [ZOJ 3839] Poker Face (递归)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3839 题目大意:画脸..每张脸是上一个脸倒过来加上眼睛.. 注意 ...

  8. [ZOJ 1006] Do the Untwist (模拟实现解密)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=6 题目大意:给你加密方式,请你求出解密. 直接逆运算搞,用到同余定理 ...

  9. ZOJ 1057 Undercut(简单模拟)

    Undercut 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=57 题目大意:a card game,two pla ...

随机推荐

  1. mysql数据库的一些基本操作

    下面列出一些做项目时常用到的一些mysql操作. 1.对数据库的操作 查看所有的数据库:show databases; 新建一个数据库:create database database_name; 此 ...

  2. yii user 组件

    yii/web/user enableAutoLogin:如果未登录,则会从cookie中登录 autoRenewCookie: 如果登录了,则会使用renewIdentityCookie更新cook ...

  3. 盘点 OSX 上最佳的 DevOps 工具

    [编者按]对于运维人员来说,他们往往需要各种各样的工具来应对工作需求,近日 Dustin Collins 通过「The Best DevOps Tools on OSX」一文对 OSX 平台上的工具进 ...

  4. 介绍一款轻量级js控件:easy.js

    easy.js 组件高速入门 在使用 easy.js 的组件之前,假设能花上几分钟看看以下的一些简单的入门指南,在使用组件的时候你会更加的得心应手. 简单性 easy.js 的组件在 UI(界面) 层 ...

  5. jQuery性能优化38建议---最引人注目的用户体验!

    一.需要注意的是的定义jQuery当变量被添加varkeyword 然而,这并不jQuery.整个javascript开发过程,所有需要注意,一定不要将其定义为下面的示例: $loading = $( ...

  6. Eclipse中TODO的分类,以及自动去除

    Window-Preference-Java-Compiler-Task Tags; 这里面进行TaskTag标签的定义,默认支持FIXME.TODO.XXX三种:优先级高的在taskview中 会显 ...

  7. ZooKeeper安装、部署

    一.简介       ZK的安装和配置十分简单,既可以配置成单机模式,也可以配置成集群模式,zk使用java编写的运行在java环境上,3个ZK服务进程是建议的最小进程数量,而且建议部署在不通的物理机 ...

  8. PHP多个一维数组合并成二维数组的简易方法

    当我们需要进行数组遍历数据的时候,需要将多个一维数组进行二维的转换,方法很简单.如下: <?php $a= array('张三','李四','王五'); $b= array ('23','24' ...

  9. iOS app集成支付宝支付流程及后台php订单签名处理

    iOS app集成支付宝支付流程 1: 开通支付宝商户 由公司去支付宝 https://b.alipay.com/order/serviceIndex.htm 签约支付宝开通支付宝商家: 2:商户支付 ...

  10. IPV6设置

    C:\Windows\System32\drivers\etc 目录下修改hosts文件. 网上有更新的ipv6 hosts文件,复制下来~ 别人不断更新的: https://raw.githubus ...