zoukankan      html  css  js  c++  java
  • POJ2993——Emag eht htiw Em Pleh(字符串处理+排序)

    Emag eht htiw Em Pleh

    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.|
    +---+---+---+---+---+---+---+---+
    题目大意:POJ2996的反向。输入2996的输出,输出2996的输入。
    解题思路:
        1.定义结构体存每个格子的状态
        2.初始化结构体数组为“:::”||“...”    
        3.读取字符串,根据数据改变结构体的第二个变量
        4.格式输出
    Code:
     1 #include<iostream>
     2 #include<string>
     3 using namespace std;
     4 struct Point
     5 {
     6     char a,b,c;
     7 } P[10000];
     8 void Init()
     9 {
    10     int ok=1;
    11     for (int i=1; i<=64; i++)
    12     {
    13         if (ok) P[i].a=P[i].b=P[i].c=':';
    14         else P[i].a=P[i].b=P[i].c='.';
    15         if (i%8) ok=!ok;
    16     }
    17 }
    18 int main()
    19 {
    20     char x,y;
    21     int i,j;
    22     string White,Black;
    23     string tmp="+---+---+---+---+---+---+---+---+";
    24     getline(cin,White);
    25     getline(cin,Black);
    26     Init();
    27     for (i=7; i<=White.length()-1; i++)
    28     {
    29         if (White[i]>='A'&&White[i]<='Z')
    30         {
    31             x=White[i+2],y=White[i+1];
    32             P[(x-48-1)*8+(y-'a'+1)].b=White[i];
    33         }
    34         else if (White[i-1]==',')
    35         {
    36             x=White[i+1],y=White[i];
    37             P[(x-48-1)*8+(y-'a'+1)].b='P';
    38         }
    39     }
    40     for (i=7; i<=Black.length()-1; i++)
    41     {
    42         if (Black[i]>='A'&&Black[i]<='Z')
    43         {
    44             x=Black[i+2],y=Black[i+1];
    45             P[(x-48-1)*8+(y-'a'+1)].b=Black[i]+32;
    46         }
    47         else if (Black[i-1]==',')
    48         {
    49             x=Black[i+1],y=Black[i];
    50             P[(x-48-1)*8+(y-'a'+1)].b='p';
    51         }
    52     }
    53     cout<<tmp<<endl;
    54     for (i=8; i>=1; i--)
    55     {
    56         cout<<'|';
    57         for (j=1; j<=8; j++)
    58             cout<<P[(i-1)*8+j].a<<P[(i-1)*8+j].b<<P[(i-1)*8+j].c<<'|';
    59         cout<<endl;
    60         cout<<tmp<<endl;
    61     }
    62     return 0;
    63 }
  • 相关阅读:
    HDU 4772 Zhuge Liang's Password (矩阵旋转)
    POJ 1141 Brackets Sequence(区间DP)
    POJ 2531 Network Saboteur (DFS)
    HDU 2680 Choose the best route (最短路)
    HDU 1285 确定比赛名次 (预处理+拓扑排序)
    HDU 4540 威威猫系列故事——打地鼠 (DP)
    HDU 2899 Strange fuction (二分)
    HDU 3485 Count 101(DP)
    codeforces 510c (拓扑排序)
    codeforces 510B Fox And Two Dots(dfs)
  • 原文地址:https://www.cnblogs.com/Enumz/p/3765335.html
Copyright © 2011-2022 走看看