码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-11-27 00:45:41      阅读:45      评论:0      收藏:0      [点我收藏+]

标签:vector   cto   ace   std   define   模拟   c++   pac   else   

 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 }

 

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

标签:vector   cto   ace   std   define   模拟   c++   pac   else   

原文地址:https://www.cnblogs.com/ldudxy/p/11939198.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!