zoukankan      html  css  js  c++  java
  • 【模拟】 占卜DIY

    传送门

    题意

    去掉大小王的扑克,打乱后分成(13)堆,第(13)堆称作生命牌,(K)是死牌,初始状态下所有牌都面朝下,然后按照如下执行下去

    • 抽取最后一堆的第一张牌

    • 翻开这张牌,并将正面向上,放到这张牌上数字对应的堆上

    • 在刚刚放了牌的堆中抽取最后一张,做第二步

    • 抽到(K)就死一次

    • (4)命没了后,即(4)(K)都被抽出来,统计正面朝上的牌中有多少个牌其对应标号的所有牌都正面朝上

    输出这个对数

    题解

    字符数组存储所有的牌,(le_{i})记录当前堆上最后一张牌的标号,(ans)数组记录每一堆对应标号的正面牌有多少个

    Code

    #include<bits/stdc++.h>
    using namespace std;
    char a[20][10];
    int ans[15];
    int le[15];
    int get(char x)
    {
        if(x == 'A') return 1;
        if(x == 'K') return 13;
        if(x == 'Q') return 12;
        if(x == 'J') return 11;
        if(x == '0') return 10;
        if (x>='2' && x<='9')
            return x-'0';
    }
    int main()
    {
        memset(ans,0,sizeof ans);
    
        for(int i=1;i<=12;i++)
            le[i]=4;
        for(int i = 1; i <= 13; i++)
            for(int j = 1; j <= 4; j++)
                cin>>a[i][j];
    
        for(int i=1;i<=4;i++)
        {
            int now = get(a[13][i]);
            while(now!=13)
            {
                ans[now]++;
                now=get(a[now][le[now]--]);
            }
        }
        int res = 0;
        for(int i = 1; i <= 12; i++)
            if(ans[i]==4) res++;
        cout<<res;
    }
    
  • 相关阅读:
    Hui之组件大全
    程序员交流学习平台
    PHP 常用框架
    常用浏览器
    设计必备工具、平台
    文档必备工具
    开发必备工具
    工作必备工具
    源码托管平台、软件
    前端常用框架
  • 原文地址:https://www.cnblogs.com/hhyx/p/13741986.html
Copyright © 2011-2022 走看看