蓝桥杯三月模拟赛第7题

题目是由g和*组成的地图。g代表草,每过一个月会从上下左右四个方向长一次。第一行输入n和m,代表行数列数,然后输入n行m列的字符,再输入k,k代表月份。要求输出k月后的地图

 1 #include<iostream>
 2 using namespace std;
 3 int main(){
 4     int n,m,k;
 5     cin>>n>>m;
 6     char a[1000][1000];
 7     int b[1000],c[1000];
 8     for(int i=0;i<n;i++){
 9         for(int j=0;j<m;j++){
10             cin>>a[i][j];
11         }
12     }
13     cin>>k;
14     int b1=0;
15     for(int i1=0;i1<k;i1++){
16         
17         for(int i=0;i<n;i++){
18             for(int j=0;j<m;j++){
19                 if(a[i][j]=='g'){        
20                     b[b1]=i;
21                     c[b1]=j; 
22                     b1++;
23                 }          
24             }
25         }
26         for(int i=0;i<b1;i++){
27                     a[b[i]-1][c[i]]='g';
28                     a[b[i]+1][c[i]]='g';
29                     a[b[i]][c[i]+1]='g';
30                     a[b[i]][c[i]-1]='g';
31         }              
32     }
33     for(int i=0;i<n;i++){
34         for(int j=0;j<m;j++){
35             cout<<a[i][j];
36         }
37         cout<<endl;
38     }
39 }       

样例和结果,写的是o(n^3)的,应该只能过部分样例

posted @ 2020-03-21 15:00  远航。  阅读(179)  评论(0编辑  收藏  举报