-->原题链接

思路:

        大模拟最重要的是理清思路,针对该题的几块内容来说。

        对于地区:用map来存,用pair表示某个地区是风险区的连续的开始和结束时间。维护起来  也很简单。若日期为d的一天收到p地成为风险区的消息,就检查d是否在p是风险区的日期内,即p地在日期d是否为风险区,如果是,就把p地风险区的结束时间延长至d+6(取不到d+7)(如果p地是风险的连续日期为[a,b],那么d是b+1也是可以连起来的,40分可能是这里没处理好)。如果不是,就把p地的风险区的区间设为[d,d+6]。

        对于漫游消息:用结构体表示,用vector数组存,二维数组也可以。第d天收到的消息就存到下标为d的数组里面。

        处理结果:读入数据后。在存漫游消息的数组里遍历前六天到现在的所有漫游消息,对于遍历到的每条漫游消息都检查一下看是否满足条件,若满足就把这条消息里的人加入答案中。最后把答案排序去重输出就可以了。

代码(注释):

#include<bits/stdc++.h>
using namespace std;int n,m,r;
struct Data{//漫游消息int d,u,p;
};
vector<Data> v[1010];//存漫游消息
map<int,pair<int,int> > pos; //每个地区的风险区持续时间
map<int,bool> st;//每个地区是否曾被设为风险区void setf(int p,int d){//将p地设为风险区,日期是dif(!st[p]) pos[p]={d,d+6};else{if(d<=pos[p].second+1) pos[p].second=d+6;//可以连起来else pos[p]={d,d+6};}st[p]=true;
}bool check(int d1,int u,int p,int d){//检查<d1,u,p>这条漫游消息是否满足条件,d为当前日期if(st[p]&&d1>=d-6&&d1<=d&&d1>=pos[p].first&&d<=pos[p].second) return true;return false;
}int main(){cin>>n;for(int h=0;h<n;h++){//h表示当前日期cin>>r>>m;for(int i=1;i<=r;i++){//读入风险区并更新int t;cin>>t;setf(t,h);}for(int i=1;i<=m;i++){//读入漫游消息并存入int d,u,p;cin>>d>>u>>p;if(d<=h) v[h].push_back({d,u,p});}vector<int> ans;//当天的风险名单for(int i=(h-6>=0?h-6:0);i<=h;i++){//遍历漫游消息,满足的加入ansfor(int j=0;j<v[i].size();j++){if(check(v[i][j].d,v[i][j].u,v[i][j].p,h)) ans.push_back(v[i][j].u);}}sort(ans.begin(),ans.end());ans.erase(unique(ans.begin(),ans.end()),ans.end());cout<<h;for(int i=0;i<ans.size();i++) cout<<" "<<ans[i];cout<<endl;}system("pause");
}

第27次CCF CSP(202209) T3非常详细题解 防疫大数据(C++)相关推荐

  1. 黄东旭当选 CCF 数据库专业委员会、开源发展委员会、大数据专家委员会执行委员

    近日,CCF 数据库专业委员会.大数据专家委员会分别公布了执行委员最新名单,PingCAP 联合创始人兼 CTO 黄东旭成功当选数据库专业委员会.大数据专家委员会执行委员.此外,CCF 开源发展委员会 ...

  2. CCF CSP 202209

    第一题 如此编码 #include<stdio.h> #include<string.h> #include<algorithm>int a[10000]; lon ...

  3. CCF 202209-3 防疫大数据JAVA题解

    按照题意模拟,注意结果输出需要去重用set 封装 注意结果 package csp;import java.util.*;class Node{int d;int u;int r; }public c ...

  4. CSP认证202209-3:防疫大数据

    70分 #include<iostream> #include<cstdio> #include<vector> using namespace std; cons ...

  5. CCF CSP 题解汇总

    前言 本文汇总了本人所有的CSP题解,方便总览. 202209 202209 题解 分数 1 如此编码 1 如此编码 100 2 何以包邮? 2 何以包邮? 100 3 防疫大数据 4 吉祥物投票 4 ...

  6. CCF受理“大数据专家委员会”2019年委员与通讯委员申请

    中国计算机学会(CCF)于2012年10月由李国杰院士牵头成立大数据专家委员会(CCF Task Force on Big Data,以下简称:大数据专委会).区别于专业委员会,大数据专委会是CCF成 ...

  7. CCF CSP 201609-2 火车购票

    题目链接:http://118.190.20.162/view.page?gpid=T46 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排 ...

  8. 计算机能力挑战赛_蓝桥杯、PAT、CCF CSP、团体程序设计天梯赛、传智杯、计算机能力挑战赛、软考等大学生编程比赛/考试介绍...

    介绍7个适合普通大学生参加的编程比赛/考试(注:有的比赛如蓝桥杯有多种赛别,本文仅介绍其中的程序设计/编程比赛). 编程入门书籍推荐<算法笔记>,内容详细易懂,对新手非常友好,描述语言为C ...

  9. CCF CSP认证菜鸟刷题日志

    CCF CSP菜鸟刷题日志(c/c++) 本萌新写给自己看的,要是有大佬路过,请多多指教orz 立个flag:每日一更,至201903 9月15ccf csp,冲鸭! 今天(2019.8.18)起每天 ...

最新文章

  1. 解决Windows下栈内存过小的问题
  2. 博客项目之设计访客统计
  3. Nginx之让用户通过用户名密码认证访问web站点
  4. LeetCode: Maximum Product Subarray
  5. jan java c 生成 dll_Java配置----JDK开发环境搭建及环境变量配置
  6. 【效率】大厂出品免费图标资源站
  7. 类的加载顺序和静态代码块和匿名代码块的区别
  8. System.getProperty()参数
  9. OpenGL程序运行提示“glut32.dll丢失问题”
  10. Windows XP下Service的编程入门[2]
  11. 基于神经网络预测车道行驶的自动驾驶
  12. 【Flink】FLink Barrier 在流经算子 做 checkpoint 的时候,数据是停止的吗?
  13. 【安全】LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol
  14. 华为云跻身Gartner报告中国三强,预示云计算市场的未来变局?
  15. 【Java每日一题】20170110
  16. 树的先序遍历递归的理解
  17. 12c r2单实例 静默安装软件
  18. Python3 - 字符串
  19. R语言查看包安装路径
  20. smartdrv.exe 文件说明

热门文章

  1. vue3点击返回顶部
  2. 使用python从360doc上抓取内容
  3. Java实现三个维度的跑马灯(数组)
  4. 7号电单车java怎么样_7号电单车“方便”变不方便,定点还车坑坏网友!
  5. 计算机应届生银行考试都考些什么内容?
  6. linux u盘 specify,linux mount报错:you must specify the filesystem type的解决方法
  7. Python进程池Pool:让每个进程井然有序
  8. SoftReference软引用
  9. 【JoJo的摄影笔记】关于构图那些事
  10. 3.28“地球停电一小时”——世界节电日