POJ 3768 Repeater

来源:互联网 发布:粗集料坚固性试验数据 编辑:程序博客网 时间:2024/06/07 18:58

深搜。。好好理解一下

#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<string>#include<queue>#include<vector>using namespace std;#define mod 100000007#define eps 1e-8#define ll long long#define ull unsigned long long#define inf 0x3f3f3f3f#define mnx 3020char map[mnx][mnx], ch[6][6], n;void dfs(int m, int x, int y){           // x, y是一个起点 if( m==1 ){for( int i = 0; i < n; i++ ){for( int j = 0; j < n; j++ ){map[x+i][y+j] = ch[i][j];}}return;}else{int size = pow( n-0.0, m-1 );for( int i = 0; i < n; i++ ){for( int j = 0; j < n; j++ ){if( ch[i][j] != ' ' )   dfs( m-1, x+i*size, y+j*size );  }}}}int main(){int m;while( scanf("%d", &n) && n ){getchar();for( int i = 0; i < n; i++ ){gets(ch[i]);}scanf("%d", &m);int size = pow(n-0.0, m);for( int i = 0; i< size; i++ ){for( int j = 0; j < size; j++ ){map[i][j] = ' ';}map[i][size] = '\0';}dfs( m, 0, 0 );for( int i = 0; i < size; i++ ){printf("%s\n", map[i]);}}return 0;}

0 0
原创粉丝点击