第27次CCF CSP(202209) T3非常详细题解 防疫大数据(C++)
-->原题链接
思路:
大模拟最重要的是理清思路,针对该题的几块内容来说。
对于地区:用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++)相关推荐
- 黄东旭当选 CCF 数据库专业委员会、开源发展委员会、大数据专家委员会执行委员
近日,CCF 数据库专业委员会.大数据专家委员会分别公布了执行委员最新名单,PingCAP 联合创始人兼 CTO 黄东旭成功当选数据库专业委员会.大数据专家委员会执行委员.此外,CCF 开源发展委员会 ...
- CCF CSP 202209
第一题 如此编码 #include<stdio.h> #include<string.h> #include<algorithm>int a[10000]; lon ...
- CCF 202209-3 防疫大数据JAVA题解
按照题意模拟,注意结果输出需要去重用set 封装 注意结果 package csp;import java.util.*;class Node{int d;int u;int r; }public c ...
- CSP认证202209-3:防疫大数据
70分 #include<iostream> #include<cstdio> #include<vector> using namespace std; cons ...
- CCF CSP 题解汇总
前言 本文汇总了本人所有的CSP题解,方便总览. 202209 202209 题解 分数 1 如此编码 1 如此编码 100 2 何以包邮? 2 何以包邮? 100 3 防疫大数据 4 吉祥物投票 4 ...
- CCF受理“大数据专家委员会”2019年委员与通讯委员申请
中国计算机学会(CCF)于2012年10月由李国杰院士牵头成立大数据专家委员会(CCF Task Force on Big Data,以下简称:大数据专委会).区别于专业委员会,大数据专委会是CCF成 ...
- CCF CSP 201609-2 火车购票
题目链接:http://118.190.20.162/view.page?gpid=T46 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排 ...
- 计算机能力挑战赛_蓝桥杯、PAT、CCF CSP、团体程序设计天梯赛、传智杯、计算机能力挑战赛、软考等大学生编程比赛/考试介绍...
介绍7个适合普通大学生参加的编程比赛/考试(注:有的比赛如蓝桥杯有多种赛别,本文仅介绍其中的程序设计/编程比赛). 编程入门书籍推荐<算法笔记>,内容详细易懂,对新手非常友好,描述语言为C ...
- CCF CSP认证菜鸟刷题日志
CCF CSP菜鸟刷题日志(c/c++) 本萌新写给自己看的,要是有大佬路过,请多多指教orz 立个flag:每日一更,至201903 9月15ccf csp,冲鸭! 今天(2019.8.18)起每天 ...
最新文章
- 解决Windows下栈内存过小的问题
- 博客项目之设计访客统计
- Nginx之让用户通过用户名密码认证访问web站点
- LeetCode: Maximum Product Subarray
- jan java c 生成 dll_Java配置----JDK开发环境搭建及环境变量配置
- 【效率】大厂出品免费图标资源站
- 类的加载顺序和静态代码块和匿名代码块的区别
- System.getProperty()参数
- OpenGL程序运行提示“glut32.dll丢失问题”
- Windows XP下Service的编程入门[2]
- 基于神经网络预测车道行驶的自动驾驶
- 【Flink】FLink Barrier 在流经算子 做 checkpoint 的时候,数据是停止的吗?
- 【安全】LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol
- 华为云跻身Gartner报告中国三强,预示云计算市场的未来变局?
- 【Java每日一题】20170110
- 树的先序遍历递归的理解
- 12c r2单实例 静默安装软件
- Python3 - 字符串
- R语言查看包安装路径
- smartdrv.exe 文件说明
热门文章
- vue3点击返回顶部
- 使用python从360doc上抓取内容
- Java实现三个维度的跑马灯(数组)
- 7号电单车java怎么样_7号电单车“方便”变不方便,定点还车坑坏网友!
- 计算机应届生银行考试都考些什么内容?
- linux u盘 specify,linux mount报错:you must specify the filesystem type的解决方法
- Python进程池Pool:让每个进程井然有序
- SoftReference软引用
- 【JoJo的摄影笔记】关于构图那些事
- 3.28“地球停电一小时”——世界节电日