zoukankan      html  css  js  c++  java
  • 模拟 + 打表 --- Emag eht htiw Em Pleh

    Emag eht htiw Em Pleh
    Time Limit: 1000MS   Memory Limit: 65536K
    Total Submissions: 2578   Accepted: 1731

    Description

    This problem is a reverse case of the problem 2996. You are given the output of the problem H and your task is to find the corresponding input.

    Input

    according to output of problem 2996.

    Output

    according to input of problem 2996.

    Sample Input

    White: Ke1,Qd1,Ra1,Rh1,Bc1,Bf1,Nb1,a2,c2,d2,f2,g2,h2,a3,e4
    Black: Ke8,Qd8,Ra8,Rh8,Bc8,Ng8,Nc6,a7,b7,c7,d7,e7,f7,h7,h6

    Sample Output

    +---+---+---+---+---+---+---+---+
    |.r.|:::|.b.|:q:|.k.|:::|.n.|:r:|
    +---+---+---+---+---+---+---+---+
    |:p:|.p.|:p:|.p.|:p:|.p.|:::|.p.|
    +---+---+---+---+---+---+---+---+
    |...|:::|.n.|:::|...|:::|...|:p:|
    +---+---+---+---+---+---+---+---+
    |:::|...|:::|...|:::|...|:::|...|
    +---+---+---+---+---+---+---+---+
    |...|:::|...|:::|.P.|:::|...|:::|
    +---+---+---+---+---+---+---+---+
    |:P:|...|:::|...|:::|...|:::|...|
    +---+---+---+---+---+---+---+---+
    |.P.|:::|.P.|:P:|...|:P:|.P.|:P:|
    +---+---+---+---+---+---+---+---+
    |:R:|.N.|:B:|.Q.|:K:|.B.|:::|.R.|
    +---+---+---+---+---+---+---+---+

    【题目来源】

    CTU Open 2005

    【题目大意】

    这题和上一题是相关联的,上一题是给棋盘让你输出棋子的坐标,这题时给坐标让你输出棋盘。

    【题目分析】

    先将整个棋盘的初始状态打表存放起来,然后每次都初始化,输入坐标后更新数组的值,最后输出。

    思路清晰就能1A。

    #include<cstdio>
    #include<cstring>
    char Map[17][33];
    char Graph[17][33]=
    {
    '+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+',
    '|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|',
    '+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+',
    '|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',
    '+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+',
    '|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|',
    '+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+',
    '|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',
    '+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+',
    '|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|',
    '+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+',
    '|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',
    '+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+',
    '|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|',
    '+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+',
    '|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',
    '+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+',
    };
    
    void make_table()
    {
        for(int i=0;i<17;i++)
            for(int j=0;j<33;j++)
                Map[i][j]=Graph[i][j];
    }
    
    char w[500];
    char b[500];
    
    void update1(char c,char x1,char y1)
    {
        int x=(8-(y1-'0')+1)*2-1;
        int y=(x1-'a'+1)*4-2;
        Map[x][y]=c;
    }
    
    void update2(char c,char x1,char y1)
    {
        int x=(8-(y1-'0')+1)*2-1;
        int y=(x1-'a'+1)*4-2;
        Map[x][y]=c+32;
    }
    
    void update3(char x1,char y1)
    {
        int x=(8-(y1-'0')+1)*2-1;
        int y=(x1-'a'+1)*4-2;
        Map[x][y]='P';
    }
    
    void update4(char x1,char y1)
    {
        int x=(8-(y1-'0')+1)*2-1;
        int y=(x1-'a'+1)*4-2;
        Map[x][y]='p';
    }
    
    
    int main()
    {
       while(scanf("White: %s",w)!=EOF)
        {
            getchar();
            scanf("Black: %s",b);
            getchar();
            make_table();
            int len1=strlen(w);
            int len2=strlen(b);
            for(int i=0;i<len1;)
            {
                if(w[i]>='A'&&w[i]<='Z')
                {
                    update1(w[i],w[i+1],w[i+2]);
                    i+=4;
                }
                else if(w[i]>='a'&&w[i]<='z')
                {
                    update3(w[i],w[i+1]);
                    i+=3;
                }
            }
            for(int i=0;i<len2;)
            {
                if(b[i]>='A'&&b[i]<='Z')
                {
                    update2(b[i],b[i+1],b[i+2]);
                    i+=4;
                }
                else if(b[i]>='a'&&b[i]<='z')
                {
                    update4(b[i],b[i+1]);
                    i+=3;
                }
            }
            for(int i=0;i<17;i++)
            {
              for(int j=0;j<33;j++)
                 printf("%c",Map[i][j]);
              puts("");
            }
        }
        return 0;
    }
  • 相关阅读:
    git学习02
    每日一记8.12
    git学习01
    每日一记8.7
    每日一记8.6
    spring boot使用tomcat启动
    每日一记8.1
    【学习笔记】HTML5 WebGL游戏引擎开发
    【转】使用 WebGL 进行 3D 开发,第 3 部分: 添加用户交互
    【转】使用 WebGL 进行 3D 开发,第 2 部分: 使用 WebGL 库以更少的编码做更多的事情
  • 原文地址:https://www.cnblogs.com/crazyacking/p/3747979.html
Copyright © 2011-2022 走看看