Advertisement

上海计算机学会2021年6月月赛C++丙组T4降雨统计

阅读量:

降雨统计

内存限制: 256 Mb时间限制: 1000 ms

题目描述

最近正值雨季,小爱希望通过观察气象云图来预测城市每个未知的降雨时间。已知小爱居住的城市可以看成n×m的方格图,每个方格表示一个地区,该地区上空天气共两种情况:

复制代码
1. 晴空万里,用字符 `.` 表示,表示该地区无降雨

1. 乌云密布,用字符 `#` 表示,表示该地区正在降雨

据小爱观察,乌云以每分钟1个方格的速度向右移动,乌云到达某地区时,该地区就会有降雨过程,乌云离境后,降雨停止。

现给定t=0时刻时,每个地区上空天气情况,请你帮小爱统计每个地区的降雨时间。

输入格式

输入第一行:两个正整数n,m
接下去n行,每行m个字符,每个字符对应该地区上空天气情况。

输出格式

输出共n行,每行m个数字,用空格隔开,第i行第𝑗j个数字表示(i,j)方格对应地区的总降雨时间。

数据范围

对于30%的数据:1≤n,m≤10
对于60%的数据:1≤n,m≤100
对于100%的数据:1≤n,m≤1000

样例数据

输入:
4 4
..#.

##..
.#..
输出:
0 0 1 1
1 2 3 4
1 2 2 2
0 1 1 1
说明:
样例输出第一行说明:
(1,1),(1,2)两区域没有乌云过境,不会下雨,总降雨时间为0
(1,3)地区在t=0时下雨,而后不再下雨,总降雨时间为1
(1,4)地区在t=1时刻下雨(乌云由(1,3)向右飘来),而后不再下雨,总降雨时间为1

解析,统计每个位置及其左边有几个#就可以了,详见代码:

注意:输入输出要优不然超时。

复制代码
 #include<bits/stdc++.h>

    
 using namespace std;
    
 int n,m;
    
 int main(){
    
     ios::sync_with_stdio(0);
    
     cin.tie(0);
    
     cout.tie(0);
    
     cin>>n>>m;
    
     for(int i=1;i<=n;i++){
    
     int cnt=0;
    
     for(int j=1;j<=m;j++){
    
         char ch;
    
         cin>>ch;
    
         if (ch=='#'){
    
             cnt++;
    
         }
    
         cout<<cnt<<" ";
    
     }
    
     cout<<"\n";
    
     }
    
     return 0;
    
 }
    
    
    
    

全部评论 (0)

还没有任何评论哟~