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;
}