首页 > 代码库 > UVa 1641 ASCII Area

UVa 1641 ASCII Area

题意:

就是用一个字符矩阵代表一个闭合的阴影部分,然后求阴影部分的面积。

分析:

一个‘/‘和‘\‘字符都代表半个小方块的面积。

关键就是判断‘.‘是否属于阴影部分,这才是本题的关键。

从第一列开始,从上到下扫面‘/‘和‘\‘字符的个数,如果是奇数,则‘.‘属于阴影部分,阴影面积加一。

技术分享
 1 #include <cstdio> 2  3 const int maxn = 100 + 10; 4 char map[maxn][maxn]; 5  6 int main() 7 { 8     //freopen("in.txt", "r", stdin); 9     int h, w;10     while(scanf("%d%d", &h, &w) == 2)11     {12         for(int i = 0; i < h; ++i) scanf("%s", map[i]);13         int cnt = 0;14         bool flag = false;15         for(int i = 0; i < w; ++i)16             for(int j = 0; j < h; ++j)17             {18                 if(map[j][i] == / || map[j][i] == \\)19                 {20                     cnt++;21                     flag = !flag;22                 }23                 else if(flag) cnt += 2;24             }25 26         printf("%d\n", cnt / 2);27     }28 29     return 0;30 }
代码君

 

UVa 1641 ASCII Area