zoukankan      html  css  js  c++  java
  • poj 3786 Repeater

    一道递归构造图形的题,做的时候一直TLE,多想想优化才过的。

     1 #include <stdio.h>
     2 #include <string.h>
     3 char map[2500][2500];
     4 char tplt[6][6];
     5 int n;
     6 void build(int m, int x, int y)
     7 {
     8     int i,j,sum = 1;
     9     for(i = 1; i < m; i++) sum *= n;
    10     if(m == 1)
    11         for(i = x; i < x+n; i++)
    12             for(j = y; j < y+n; j++)
    13                 map[i][j] = tplt[i-x][j-y];
    14     else for(i = 0; i < n; i++)
    15         for(j = 0; j < n; j++)
    16             if(tplt[i][j] != ' ')
    17                 build(m-1,x+i*sum,y+j*sum);
    18 }
    19 int main()
    20 {
    21     int m,i,j,sum;
    22     while(scanf("%d",&n),n)
    23     {
    24         getchar();
    25         memset(map,' ',sizeof map);
    26         for(i = 0; i < n; i++)
    27             gets(tplt[i]);
    28         scanf("%d",&m);
    29         build(m,0,0);
    30         sum = 1;
    31         for(i = 0; i < m; i++) sum *= n;
    32         for(i = 0; i < sum; i++)
    33         {
    34             map[i][sum] = '\0';
    35             for(j = sum-1; j >= 0; j--)
    36                 if(map[i][j] != ' ')
    37                 {
    38                     map[i][j+1] = '\0';
    39                     break;
    40                 }
    41             printf("%s\n",map[i]);
    42         }
    43     }
    44     return 0;
    45 }
  • 相关阅读:
    单词 统计
    第九周周进度报告
    日常总结
    Docker 初识
    读书笔记
    《未来简史》有感
    自己的Java规范文档
    nginx自动部署脚本
    jdk 自动化脚本
    我Java学习时的模样(三)
  • 原文地址:https://www.cnblogs.com/lzxskjo/p/2661083.html
Copyright © 2011-2022 走看看