UVa 1641 ASCII Area

题目

题目大意

在一个\(h × w\)(\(2 ≤ h, w ≤ 100\))的字符矩阵里用.\/画出一个多边形, 计算面积。如下面的样例所示, 面积为\(8\)

/\/\
\../
.\.\
..\/

题解

就是道水题是道几何题, /\代表的面积为\(0.5\), 做一个标记, 中间的.面积为\(1\), 枚举一遍即可。

代码

#include<cstdio>
int n, m, now;
float ans;
char a[101][101];
int main(int argc, char const *argv[]) {
	while (~scanf("%d%d",&n,&m)) {
		for (register int i(1); i <= n; ++i) {
      scanf("%s",a[i]+1);
    }
    ans = 0;
    now = 0;
		for (register int i(1); i <= n; ++i) {
		  for (register int j(1); j <= m; ++j) {
			  if (a[i][j] == '\\' || a[i][j] == '/') {
				  now ^= 1;
          ans += 0.5;
			  } else if(now) {
          ans += 1;
        }
		  }
    }
		if (ans == ans / 1) {
      printf("%d\n", int(ans));
		}
		else printf("%.1f\n",ans);
	}
	return 0;
}
posted @ 2018-09-29 16:04  Acenaphthene  阅读(147)  评论(0编辑  收藏  举报