CCF小白刷题之路---202009-2 风险人群筛查(C/C++ 100分)

简介: CCF小白刷题之路---202009-2 风险人群筛查(C/C++ 100分)

1.题目描述
image.png
image.png
image.png
image.png
2.解题思路
本题难点在于逗留的判断,逗留的意思是要该居民连续去过k次及以上的高危地区才算做逗留,所以我在这里定义了一个结构体,其中max_dl用来记录每次循环时该居民的最大连续逗留次数,最后与k进行大小比较判断该居民是否属于逗留。

3.代码实现

#include<iostream>
using namespace std;

struct person{
    int jg; //经过高危地区的次数
    int dl; //连续经过高危地区的次数
    int max_dl; //最大连续经过高危地区的次数
};

int main()
{
    int n,k,t,x1,y1,x2,y2;
    cin>>n>>k>>t>>x1>>y1>>x2>>y2;
    int sum_jg=0,sum_dl=0;
    person per[n];
    for(int i=0;i<n;i++)
    {
        per[i].jg = 0;
        per[i].dl = 0;
        per[i].max_dl = 0;
        for(int j=0;j<t;j++)
        {
            int person_x,person_y;
            cin>>person_x>>person_y;
            if(person_x>=x1 && person_x<=x2 && person_y>=y1 && person_y<=y2)
            {
                per[i].jg++;
                per[i].dl++;
                if(per[i].dl > per[i].max_dl) per[i].max_dl = per[i].dl;
                //找寻最大的连续经过次数,最后与k进行判断
            }
            else per[i].dl = 0;
        }
        if(per[i].jg>0) sum_jg++;
        if(per[i].max_dl>=k) sum_dl++;
    }
    cout<<sum_jg<<endl<<sum_dl<<endl;
    return 0;
}
相关文章
|
算法 C语言 C++
从C语言的使用转换到C++(上篇)——刷题、竞赛篇
从C语言的使用转换到C++(上篇)——刷题、竞赛篇
277 0
|
存储 C++
【五一创作】C++刷题 【入门4】数组
【五一创作】C++刷题 【入门4】数组
130 0
|
6月前
|
算法 C++
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题-2
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题
|
6月前
|
算法 C++
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题-1
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题
|
7月前
|
C语言 C++
【C语言/C++】牛客网刷题训练-12
【C语言/C++】牛客网刷题训练-12
|
7月前
|
存储 自然语言处理 C++
刷题用到的非常有用的函数c++(持续更新)
刷题用到的非常有用的函数c++(持续更新)
89 1
|
存储 C语言 C++
【C/C++刷题——leetcode】查找字符串中最大的子串
【C/C++刷题——leetcode】查找字符串中最大的子串
332 0
|
7月前
|
C++
C++刷题ACM输入数组
C++刷题ACM输入数组
75 0
|
7月前
|
C++
第十三届蓝桥杯B组C++(试题C:刷题统计)
第十三届蓝桥杯B组C++(试题C:刷题统计)
52 0
|
算法 程序员 C语言
从C语言的使用转换到C++(下篇)——刷题、竞赛篇
我们上篇文章讲述了C++中的一些基础语法和常用函数(从C语言的使用转换到C++(上篇)——刷题、竞赛篇),我们本篇文章讲述C++STL的使用。
221 0
下一篇
DataWorks