HRBUST - 2347 - 递归画图 - vj大一上寒假训练2.11

Posted brainm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HRBUST - 2347 - 递归画图 - vj大一上寒假训练2.11相关的知识,希望对你有一定的参考价值。

技术图片

 

思路:利用坐标dfs搜索.

注意:1,初始化.2,坐标实时更新(x,y)

代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #define ll long long
 5 using namespace std;
 6 const int amn=1e3+10;
 7 int a,b,con=0;
 8 char mp[amn][amn];char ans[amn][amn];
 9 void solve(int x,int y,int tot)
10 {
11     if(tot==a)
12     {
13         //cout<<"!"<<endl<<x<<" "<<y<<endl<<"!!"<<endl;
14         for(int k=x;k<tot+x;k++)
15         {
16             for(int l=y;l<tot+y;l++)
17             {
18                 if(mp[k-x][l-y]==*)
19                     ans[k][l]=*;
20             }
21         }
22 
23          //con++;
24         return;
25     }
26     int tes=tot/a;
27     for(int i=x; i<tot+x; i+=tes)///注意这里i=x,j=y,找了好久才发现错误....
28     {
29         for(int j=y; j<tot+y; j+=tes)
30         {
31             if(mp[(i-x)/tes][(j-y)/tes]==*)
32             {
33                 //cout<<i<<" "<<j<<endl;
34                 solve(i,j,tes);
35             }
36 
37         }
38     }
39 }
40 int main()
41 {
42 
43     while(~scanf("%d%d",&a,&b))
44     {
45 
46         for(int i=0; i<a; i++)
47         {
48             getchar();
49             for(int j=0;j<a;j++)
50             scanf("%c",&mp[i][j]);
51         }
52         //cout<<"!
";
53         int c=1;///注意初始化
54         for(int i=1;i<=b;i++)c*=a;
55         //cout<<c<<endl;
56         for(int i=0; i<c; i++)
57             for(int j=0; j<c; j++)
58             ans[i][j]= ;
59         //cout<<"!!
";
60         solve(0,0,c);
61         //cout<<con<<endl;
62         //cout<<"!!!!
";
63         for(int i=0; i<c; i++)
64         {
65             for(int j=0; j<c; j++)
66             {
67                 printf("%c",ans[i][j]);
68             }
69             
70             printf("
");
71         }
72 
73         puts("");
74         //cout<<"!!!!!
";
75     }
76 }

 

以上是关于HRBUST - 2347 - 递归画图 - vj大一上寒假训练2.11的主要内容,如果未能解决你的问题,请参考以下文章

hrbust 训练赛 - - - hdu 1016

hrbust 训练赛 1987

并查集-----hrbust 1073

hrbust 训练赛 1143

归并排序求逆序数对 hdu2689

poj2299--归并排序求解逆序对