HDU 2074 叠筐

Posted zlrrrr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU 2074 叠筐相关的知识,希望对你有一定的参考价值。

http://acm.hdu.edu.cn/showproblem.php?pid=2074

 

Problem Description
需要的时候,就把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错。这个工作现在要让计算机来完成,得看你的了。
 
Input
输入是一个个的三元组,分别是,外筐尺寸n(n为满足0<n<80的奇整数),中心花色字符,外筐花色字符,后二者都为ASCII可见字符;
 
Output
输出叠在一起的筐图案,中心花色与外筐花色字符从内层起交错相叠,多筐相叠时,最外筐的角总是被打磨掉。叠筐与叠筐之间应有一行间隔。
 
Sample Input
11 B A
5 @ W
 
Sample Output
  AAAAAAAAA
ABBBBBBBBBA
ABAAAAAAABA
ABABBBBBABA
ABABAAABABA
ABABABABABA
ABABAAABABA
ABABBBBBABA
ABAAAAAAABA
ABBBBBBBBBA
  AAAAAAAAA
 
   @@@
   @@@
 
代码:
#include <bits/stdc++.h>

using namespace std;

const int maxn = 1e5+10;
char zzt[maxn],wbd[maxn];
char pig[100][100];
int n;
int cnt=0;

void A(int x)//第 x 圈,最外第一圈
{
    //左上角是 a[x][x],右下角是 a[n-x+1][n-x+1]
    char cmz;
    if(x%2==0)
        cmz=zzt[0];
    else
        cmz=wbd[0];
    for(int i=x; i<=n-x+1; i++)
        pig[x][i]=cmz;
    for(int i=x; i<=n-x+1; i++)
        pig[n-x+1][i]=cmz;
    for(int i=x; i<=n-x+1; i++)
        pig[i][x]=cmz;
    for(int i=x; i<=n-x+1; i++)
        pig[i][n-x+1]=cmz;
}
int main()
{
    while(~scanf("%d",&n))
    {
        cnt++;
        if(cnt!=1)
            printf("
");
        scanf("%s%s",zzt,wbd);
        if(n==1)
        {
            printf("%c
",zzt[0]);
            continue;
        }
        if(((n+1)/2)%2==1)
            swap(zzt[0],wbd[0]);
        for(int i=1; i<=(n+1)/2; i++)
        {
            A(i);
        }
        pig[1][1]=‘ ‘;
        pig[1][n]=‘ ‘;
        pig[n][1]=‘ ‘;
        pig[n][n]=‘ ‘;
        for(int i=1; i<=n; i++)
        {
            for(int j=1; j<=n; j++)
            {
                printf("%c",pig[i][j]);
            }
            printf("
");
        }
    }
    return 0;
}

  

 

以上是关于HDU 2074 叠筐的主要内容,如果未能解决你的问题,请参考以下文章

HDU 2074 叠筐

叠筐 HDU - 2074

hdu2074java@@@ @WWW@ @W@W@ @WWW@ @@@

使用 JODConveter 的 doc 到 docx 转换失败并出现错误代码:2074

LeetCode 2074. 反转偶数长度组的节点

LeetCode -2074 -反转偶数长度组的节点 - java - 细喔