转载地址:http://blog.csdn.net/qq_33184171/article/details/50826765
题目:http://acm.hrbust.edu.cn/vj/index.php?c=problem-problem&id=354432
代码:
#include<stdio.h> #include<string.h> using namespace std; char maps[3005][3005]; char base[10][10]; int t,n; int temp[10][10]; char h; int draw(char maps[3005][3005],int row,int col,int temp[10][10],int ui)//,int op) { int ans=1; for(int i=0; i<n-ui; i++) { ans=ans*t; } if(ui==1) { for(int i=0;i<t;i++) { for(int j=0;j<t;j++) { if(temp[i][j]==1) maps[row+i*ans][col+j*ans]=h; } } return 0; } for(int i=0; i<t; i++) { for(int j=0; j<t; j++) { if(temp[i][j]==1) draw(maps,row+i*ans,col+j*ans,temp,ui-1); } } } int main() { while(~scanf("%d",&t)) { if(t==0) return 0; memset(maps,' ',sizeof(maps)); for(int i=0; i<t; i++) { getchar(); for(int j=0; j<t; j++) { scanf("%1c",&base[i][j]); if(base[i][j]!=' ') h=base[i][j]; } } //for(int i=0;i<t;i++) // printf("%s\n",base[i]); memset(temp,0,sizeof(temp)); for(int i=0; i<t; i++) { for(int j=0; j<t; j++) { if(base[i][j]!=' ') temp[i][j]=1; } } scanf("%d",&n); draw(maps,0,0,temp,n); int ans=1; for(int i=0; i<n; i++) { ans=ans*t; } //printf("%d\n",ans); for(int i=0;i<ans;i++) { maps[i][ans+1]='\0'; } //printf("%s\n",maps[0]); //printf("%s\n",maps[ans-1]); for(int i=0; i<ans; i++) {/* //for(int j=0;j<ans;j++) //{ printf("%s",&maps[i]); //printf 超时 //} printf("\n");*/ puts(maps[i]); } } }
经全神指点,用puts。宝宝心里苦。