zoukankan      html  css  js  c++  java
  • HDU-2074-叠筐

    分析:

    1. 为了一致性,首先要确定外边先赋值谁。当行数为奇数二倍-1时,最外层是中心块。否则是外框字符。

    2.然后遍历赋值时候。从上到下。漏斗形状赋值。同步过程中,由于图形对称,坐标反一下即可。

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 
     4 #define M 100
     5 char p[M][M];
     6 char a,b;
     7 int n;
     8 void print()
     9 {
    10     int start,end;
    11     for(int i=1;i<=n;i+=2)
    12     {
    13         start = i>n-i+1?n-i+1:i;
    14         end = i>n-i+1?i:n-i+1;
    15         for(int j=start;j<=end;j++)
    16         {
    17             p[i][j] = a;
    18             p[j][i] = a;
    19         }
    20     }
    21     for(int i=2;i<=n;i+=2)
    22     {
    23         start = i>n-i+1?n-i+1:i;
    24         end = i>n-i+1?i:n-i+1;
    25         for(int j=start;j<=end;j++)
    26         {
    27             p[i][j] = b;
    28             p[j][i] = b;
    29         }
    30     }
    31     p[1][1] = p[n][n] = p[n][1] = p[1][n] = ' ';
    32     for(int i = 1;i<=n;i++)
    33     {
    34         for(int j = 1;j<=n;j++)
    35             printf("%c",p[i][j]);
    36         printf("
    ");
    37     }
    38 }
    39 int main()
    40 {
    41     int cnt = 0;
    42     while(~scanf("%d %c %c",&n,&a,&b))//scanf输入字符时候要千万注意
    43     {
    44         getchar();
    45         if(cnt++)
    46         {
    47             printf("
    ");//这是为了满足题目条件的输出
    48         }
    49         if(n == 1)//如果n=1;直接输出中心块。
    50         {
    51             printf("%c
    ",a);
    52             continue;
    53         }
    54         if(((n+1)/2)%2==0)
    55         {
    56             char temp = a;
    57             a = b;
    58             b =temp;
    59         }
    60         print();
    61     }
    62     return 0;
    63 }
    注:转载请注明出处
  • 相关阅读:
    USACO 2016 February Contest, Gold解题报告
    USACO 2016 January Contest, Gold解题报告
    NOIP2013 Day2
    [DP题]放苹果
    [DP题]登山
    洛谷八连测R6
    [20171025模拟赛]
    [DP题]吃糖果
    [DP题]采药
    spring-security-oauth2 授权服务集成钉钉扫码登录
  • 原文地址:https://www.cnblogs.com/1625--H/p/9362830.html
Copyright © 2011-2022 走看看