202009-2风险人群筛查

题目

链接:http://118.190.20.162/view.page?gpid=T112

https://i.loli.net/2021/11/02/BaHcCWTrPGln4df.png

代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/* 风险人群筛查 */
#include <iostream>
using namespace std;
int n, k, t, xl, yd, xr, yu;
int main() {
    cin >> n >> k >> t >> xl >> yd >> xr >> yu;
    int res1 = 0, res2 = 0;
    while (n--) {
        bool r1 = false, r2 = false;
        int s = 0;
        for (int i = 0; i < t; i++) {
            int x = 0, y = 0;
            cin >> x >> y;
            if (x >= xl && x <= xr && y >= yd && y <= yu) {
                s++,r1 = true;
                if (s >= k) r2 = true;
            } else
                s = 0;
        }
        if (r1) res1++;
        if (r2) res2++;
    }
    cout << res1 << endl << res2;
    return 0;
}

总结

这是一道简单题,但是刚开始时我把它想复杂了。想起了之前的朋友跟我说的那句话,在做一道题之前要先进行分析,不要一开始就敲代码,最后只是做无用功。 我主要是错在连续在区域内才算逗留那里没有注意,以为就是统计范围里面的个数,所以错了。 看了CSDN的一位大佬的解,懂了。主要是用s判断是否连续,如果连续的,s会一直++,只要一不连续,s就会置为0. 下面是大佬的地址,推荐去他那里看。

参考内容

https://blog.csdn.net/qq_52156445/article/details/120260017

0%