HDU 2074 叠筐(基础字符串处理)

来源:互联网 发布:ace.min.js是什么 编辑:程序博客网 时间:2024/05/21 19:40

本题是一个字符串处理画图题,很多人都把它归为水题,的确思路不难,但是这题需要考虑的东西很多,例如:

1、N=1的情况
2、四个角的处理
3、输出与输出之间的空行

#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<iostream>#include <set>  #include <string>  #include <sstream>#define clear(n,m) memset(n,m,sizeof(n))#define ll long longusing namespace std;char s[85][85];int main(){    int n;    bool flag = false;    while (cin >> n)    {        char a, b;        cin >> a >> b;        if (flag)            cout << endl;        if (n == 1)        {            cout << a << endl;            continue;        }        int x = n / 2 + 1;        s[x][x] = a;        for (int i = 1;i <= n/2;i++)        {            for (int j = x-i;j <= x+i;j++)            {                if (i % 2)                {                    s[x - i][j] = s[x + i][j] = s[j][x - i] = s[j][x + i] = b;                }                else                {                    s[x - i][j] = s[x + i][j] = s[j][x - i] = s[j][x + i] = a;                }            }        }        s[1][n] = s[1][1] = s[n][1] = s[n][n] = ' ';        for (int i = 1;i <= n;i++)        {            for (int j = 1;j <= n;j++)                cout << s[i][j];            cout << endl;        }        flag = true;    }    return 0;}
0 0