HZNU Training 1 for Zhejiang Provincial Competition 2020 Xeon第三场训练赛

A. People Couting 

给出一个人的固定形状(3*3)的方框内,有许多人合影,最后拍的照不一定完整但每个人至少会出现一部分 ,问图中有几人

有点思维题的意思,最后发现只要遍历整个图判断满足条件的坐标有任何一个人的“部件”答案就能++,果然这种题一般都有比较巧妙的方法

反思:有时候不要把问题想复杂,很费时  这里注意为了方便判断,把图延展

#include<iostream>
#include<string>
#include<cmath>
#include<cstring>
#include<vector>
#include<map>
#include<set>
#include<algorithm>
#include<queue>
#include<stack>
#include<sstream>
#include<cstdio>
#define INF 0x3f3f3f3f
const int maxn = 2e5 + 10;
const double PI = acos(-1.0);
typedef long long ll;
using namespace std;

int vis[110][110];
char s[110][110];

int main() {
    int T, n, m;
    scanf("%d", &T);
    getchar();
    while (T--) {
        int ans = 0;
        scanf("%d%d", &n, &m);
        for (int i = 0; i < n; i++) scanf("%s", &s[i + 3][3]);
        for (int i = 0; i < n+3; i++) {
            for (int j = 0; j < m+3 ; j++) {
                if (s[i][j + 1] == 'O' || s[i + 1][j + 1] == '|' || s[i + 1][j] == '/' || s[i + 1][j + 2] == '\\' || s[i + 2][j] == '(' || s[i + 2][j + 2] == ')') ans++;
            }
        }
        printf("%d\n", ans);
    }
    return 0;
}
View Code

猜你喜欢

转载自www.cnblogs.com/hznumqf/p/12396893.html