防疫大数据 第27次CCF-CSP计算机软件能力认证

cpp 复制代码
#include<iostream>
#include<unordered_map>
#include<unordered_set>
#include<bits/stdc++.h>
using namespace std;
int n;
unordered_map<int, vector<vector<int>>> datas;
unordered_map<int, vector<int>> risks;//value代表每个地区的风险时间
bool check(int r,int d1,int d) {
	//r为地区 d1-d必须位于r的风险区域内
	vector<vector<int>> result;
	for (int num : risks[r]) {
		if (result.size() == 0) {
			result.push_back({ num,num + 6 });
		}
		else {
			if (result[result.size() - 1][1] >= num-1) {
				int start = result[result.size() - 1][0];
				int end = result[result.size() - 1][1];
				result.pop_back();
				result.push_back({ min(start,num),max(end,num+6) });
			}
			else {//不重合
				result.push_back({num,num+6});
			}
		}
	}
	//现在每一个区域之间都是离散的
	for (vector<int> qj : result) {
		if (qj[0] <= d1 && d <= qj[1]) {
			return true;
		}
	}
	return false;
}
int main() {
	cin >> n;
	for (int i = 0; i < n; i++) {
		int r, m;
		cin >> r >> m;
		while (r--) {
			int p;
			cin >> p;
			//加入风险时间
			risks[p].push_back(i);
		}
		while (m--) {
			int d, u, r;
			cin >> d >> u >> r;
			datas[i].push_back(vector<int>({ d,u,r }));
		}
		//处理当天信息
		unordered_set<int> res;
		//遍历七日的漫游数据
		for (int j = i-6; j <=i; j++) {
			if (j < 0) continue;
			for (vector<int> message : datas[j]) {
				int d1 = message[0];//到达日期
				int d = i;
				int u = message[1];//用户
				int r = message[2];//地区
				if (d1 <= i && d1 > i - 7) {
					if (check(r, d1, d)) {
						res.insert(u);
					}
				}
			}
		}
		vector<int> result = vector<int>(res.begin(), res.end());
		sort(result.begin(), result.end());
		cout << i << " ";
		for (int num : result) {
			cout << num << " ";
		}
		cout << endl;
	}
}

70代码:超时原因为区间不需要保存所有 只保存最新的就可以 因为过7天之后 前面的区间一定不再是风险区间了不需要保存 ,只需要保存最新的信息即可;

相关推荐
super大力张3 分钟前
MOE基于结构的药物设计(七):Ligand R-Vectors——如何判断配体可以从哪里继续生长?
数据库·算法·cadd·moe·svl·基于结构的药物设计
Databend4 分钟前
Databend 增量物化视图:基于 Change Tracking 的增量刷新与一致性读取
大数据·数据库·sql
Raas10018 分钟前
MAI Gateway(魔芋企业级AI网关)详解:AI网关在架构中的位置,一文读懂企业AI流量治理
大数据·人工智能·架构·gateway·ai网关·mai gateway
j7~33 分钟前
【C++】《unordered系列关联式容器以及哈希底层、哈希冲突、闭散列与开散列完整解析》
c++·哈希算法·开散列·闭散列·unordered_map·unordered_set·哈希底层结构
2601_9620745843 分钟前
大数据-260 实时数仓 - 项目背景与需求 实时数仓架构 需求分析 技术选型 逻辑架构
大数据·架构
LPCK_202606221 小时前
从自动化到自主化:生物制药智能体的人机边界怎么设计
大数据·人工智能·自动化
Tongsr1 小时前
别只混淆代码:用 Kaleido 加固整个 Android Release AAB
前端·算法·github
高亦真1 小时前
今天是学习嵌入式的第34天
linux·学习·算法
2402_882893861 小时前
封装红黑树实现map和set —— 从源码到模拟实现
c++·set·map
衡石科技2 小时前
HENGSHI BOX|全域智控,私域安全的ChatBI一体机
大数据·人工智能·安全