ASCII Area UVA - 1641
2017-11-10 21:00
323 查看
比较简单的一道题目,注意不论任何时候,出现'\'或者'/'的时候,都会出现一次反转,也就是之前在图形内,那么下一个格子就不在图形内,之前不在图形内部,那么下一个格子就在图形内部。同时如果出现'.',那么就判断目前是否在图形内,如果在图形内,那么总面积就加1。同时最后的结果就是‘/’以及'\'总和的一半,加上那些包括在图形内的'.'的部分即可,具体实现见如下代码:
#include<iostream>
#include<vector>
#include<string>
#include<set>
#include<stack>
#include<queue>
#include<map>
#include<algorithm>
#include<cmath>
#include<iomanip>
#include<cstring>
#include<sstream>
#include<cstdio>
#include<deque>
#include<functional>
using namespace std;
int main(){
int h, w;
while (cin >> h >> w){
int area = 0;
int amount = 0;
for (int i = 0; i < h; i++){
string s;
cin >> s;
int in = 0;
for (int j = 0; j < w; j++){
if (s[j] == '\\' || s[j] == '/') {
amount++;
in = !in;
}
else if (in) area++;
}
}
cout << area+amount/2 << endl;
}
return 0;
}
#include<iostream>
#include<vector>
#include<string>
#include<set>
#include<stack>
#include<queue>
#include<map>
#include<algorithm>
#include<cmath>
#include<iomanip>
#include<cstring>
#include<sstream>
#include<cstdio>
#include<deque>
#include<functional>
using namespace std;
int main(){
int h, w;
while (cin >> h >> w){
int area = 0;
int amount = 0;
for (int i = 0; i < h; i++){
string s;
cin >> s;
int in = 0;
for (int j = 0; j < w; j++){
if (s[j] == '\\' || s[j] == '/') {
amount++;
in = !in;
}
else if (in) area++;
}
}
cout << area+amount/2 << endl;
}
return 0;
}
相关文章推荐
- UVALive5910 UVA1641 POJ4022 ASCII Area【水题+输入输出】
- UVA 1641 POJ 4022 ASCII Area
- UVa 1641 - ASCII Area
- uva 1641 Ascii Area 多边形面积
- 例题10-24 UVA 1641 ASCII Area(ASCII面积)
- ASCII Area UVA - 1641 WA原因总结(没有脑子
- UVa 1641 - ASCII Area
- UVA 10522 Height to Area(已知三角形三高求面积)
- uva 10522 - Height to Area(几何)
- UVa 10589 - Area
- uva 1641
- UVA 1641(p337)----ASCII Area
- UVa 1641 ASCII Area
- UVa 1641 - ASCII Area(统计)
- UVA1641 - ASCII Area
- UVA 10522 - Height to Area(计算几何)
- UVa 1641 - ASCII Area
- UVa 10522 - Height to Area
- UVa 1641 ASCII Area (计算几何,水题)
- UVa 10522 - Height to Area