zoukankan      html  css  js  c++  java
  • 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
     
       @@@
    @WWW@
    @W@W@
    @WWW@
       @@@
     
    代码:
    #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;
    }
    

      

     
  • 相关阅读:
    python—内置函数-filter,map,reduce
    python—模块-练习
    python—模块-re正则表达式
    python—模块-logging
    python—模块-subprocess
    python—模块-hashlib加密
    python—模块-configparser
    SpringBoot结合设计模式(观察者模式、策略模式)- 个人记录
    Spring事务-随笔
    Servlet、Tomcat、SpringMVC-整理-随笔
  • 原文地址:https://www.cnblogs.com/zlrrrr/p/9246097.html
Copyright © 2011-2022 走看看