Codeforces Round #601 (Div. 2)D(蛇形模拟)

 1 #define HAVE_STRUCT_TIMESPEC
 2 #include<bits/stdc++.h>
 3 using namespace std;
 4 vector<char>ans;
 5 char a[107][107];
 6 int main(){
 7     ios::sync_with_stdio(false);
 8     cin.tie(NULL);
 9     cout.tie(NULL);
10     for(int i='0';i<='9';++i)
11         ans.emplace_back(i);
12     for(int i='A';i<='Z';++i)
13         ans.emplace_back(i);
14     for(int i='a';i<='z';++i)
15         ans.emplace_back(i);
16     int t;
17     cin>>t;
18     while(t--){
19         int r,c,k;
20         cin>>r>>c>>k;
21         int cnt=0;
22         for(int i=1;i<=r;++i)
23             for(int j=1;j<=c;++j){
24                 cin>>a[i][j];
25                 if(a[i][j]=='R')
26                     ++cnt;
27             }
28         int x=cnt/k,y=cnt%k;
29         int pt=0;
30         int tx=x;
31         if(y)
32             ++tx,--y;
33         for(int i=1;i<=r;++i){
34             if(i&1){
35                 for(int j=1;j<=c;++j){
36                     if(a[i][j]=='R')
37                         --tx,--cnt;
38                     a[i][j]=ans[pt];
39                     if(!cnt)
40                         continue;
41                     if(!tx){
42                         ++pt;
43                         if(y)
44                             tx=x+1,--y;
45                         else
46                             tx=x;
47                     }
48                 }
49             }
50             else{
51                 for(int j=c;j>=1;--j){
52                     if(a[i][j]=='R')
53                         --tx,--cnt;
54                     a[i][j]=ans[pt];
55                     if(!cnt)
56                         continue;
57                     if(!tx){
58                         ++pt;
59                         if(y)
60                             tx=x+1,--y;
61                         else
62                             tx=x;
63                     }
64                 }
65             }
66         }
67         for(int i=1;i<=r;++i){
68             for(int j=1;j<=c;++j)
69                 cout<<a[i][j];
70             cout<<"\n";
71         }
72     }
73     return 0;
74 }

猜你喜欢

转载自www.cnblogs.com/ldudxy/p/11939198.html