zoukankan      html  css  js  c++  java
  • uva 127 "Accordian" Patience 简单模拟

    #include<iostream>
    #include<stdio.h>
    #include<math.h>
    #include<stack>
    #include<list>
    #include<stdlib.h>
    #include<string.h>
    using namespace std;
    
    char da[55][55][5];
    int num[55];
    int pilenum;
    
    void erase(int idx)
    {
        for(int i=idx;i<pilenum;i++)
        {
            memcpy(da[i],da[i+1],sizeof(da[0]));
            num[i]=num[i+1];
        }
        pilenum--;
    }
    int deal()
    {
        int isdeal=0;
    
        for(int i=1;i<=pilenum;i++)
        {
            if(i>3)
            {
                if(da[i][num[i]][0]==da[i-3][num[i-3]][0]||
                   da[i][num[i]][1]==da[i-3][num[i-3]][1])
                {
                    num[i-3]++;
                    strcpy(da[i-3][num[i-3]],da[i][num[i]]);
                    num[i]--;
                    if(num[i]==0)erase(i);
                    return 1;
                }
            }
            if(i>1)
            {
                if(da[i][num[i]][0]==da[i-1][num[i-1]][0]||
                   da[i][num[i]][1]==da[i-1][num[i-1]][1])
                {
                    num[i-1]++;
                    strcpy(da[i-1][num[i-1]],da[i][num[i]]);
                    num[i]--;
                    if(num[i]==0)erase(i);
                    return 1;
                }
            }
        }
        return isdeal;
    }
    int main()
    {
        while(scanf("%s",da[1][1])!=EOF)
        {
            if(da[1][1][0]=='#')break;
            for(int i=1;i<=52;i++)
                num[i]=1;
            for(int i=2;i<=52;i++)
                scanf("%s",da[i][1]);
            pilenum=52;
    
            while(deal());
    
            if(pilenum==1)
            {
                printf("1 pile remaining: 52
    ");
            }else
            {
                printf("%d piles remaining:",pilenum);
                for(int i=1;i<=pilenum;i++)
                    printf(" %d",num[i]);
                printf("
    ");
            }
        }
        return 0;
    }
    View Code
  • 相关阅读:
    [CTF]ROT5/13/18/47位移密码
    [CTF]维吉尼亚密码(维基利亚密码)
    [CTF]ACSII码
    kxtj2-1009驱动总结
    DC/DCLT1767EMS8E-5芯片
    485通信总结
    安装pymssql报错
    安装mysqlclient报错
    ERROR 1878
    Win10安装gopls
  • 原文地址:https://www.cnblogs.com/BMan/p/3552305.html
Copyright © 2011-2022 走看看