当前位置: 首页 > news >正文

蓝桥杯 11.日志统计

日志统计

题目描述

小明维护着一个程序员论坛。现在他收集了一份 “点赞” 日志,日志共有 N 行。其中每一行的格式是:

ts id

表示在 ts 时刻编号 id 的帖子收到一个 “赞”。

现在小明想统计有哪些帖子曾经是 “热帖”。如果一个帖子曾在任意一个长度为 D 的时间段内收到不少于 K 个赞,小明就认为这个帖子曾是 “热帖”。

具体来说,如果存在某个时刻 T 满足该帖在 [T, T+D) 这段时间内(注意是左闭右开区间)收到不少于 K 个赞,该帖就曾是 “热帖”。

给定日志,请你帮助小明统计出所有曾是 “热帖” 的帖子编号。


输入描述

输入格式:

第一行包含三个整数 N D K

接下来的 N 行,每行包含两个整数 tsid

  • 1 ≤ K ≤ N ≤ 10^5
  • 0 ≤ ts ≤ 10^5
  • 0 ≤ id ≤ 10^5

输出描述

按从小到大的顺序输出热帖 id,每个 id 一行。


输入输出样例

输入

7 10 2
0 1
0 10
10 10
10 1
9 1
100 3
100 3

输出

1
3

c++代码

#include<bits/stdc++.h>using namespace std;unordered_map<int, queue<int>> mp;
vector<vector<int>> arr;
unordered_set<int> ans;
vector<int> tem;int N, D, K, ts, id, k;bool mycom(vector<int>& a, vector<int>& b) { return a[0] < b[0]; }int main() {cin >> N >> D >> K;arr = vector<vector<int>>(N, vector<int>(2));for (int i = 0; i < N; i++) cin >> arr[i][0] >> arr[i][1];sort(arr.begin(), arr.end(), mycom);for (int i = 0; i < N; i++) {if (ans.find(arr[i][1]) != ans.end()) continue;mp[arr[i][1]].push(arr[i][0]);if (mp[arr[i][1]].size() == K) {k = mp[arr[i][1]].front(), mp[arr[i][1]].pop();if (arr[i][0] - k < D) ans.insert(arr[i][1]);}}for (int x : ans) tem.push_back(x);sort(tem.begin(), tem.end());for (int x : tem) cout << x << endl;return 0;
}//by wqs

思路解析

按时间顺序维护一个点赞队列,当点赞队列的元素个数等于K的时候,判断是否满足时间要求,判断的话弹出第一个元素和当前元素比较就行。

http://www.xdnf.cn/news/424261.html

相关文章:

  • 亚远景-基于ASPICE的汽车供应链质量管控培训
  • 网站遭受扫描攻击,大量爬虫应对策略
  • C++伯罗奔尼撒箭阵 全国信息素养大赛复赛决赛 C++小学/初中组 算法创意实践挑战赛 内部集训模拟题详细解析
  • springboot2.7.18 升级到3.1.5过程
  • Ubuntu 22.04.5 LTS 系统中配置仓库源
  • Gartner《如何有效融合Data Fabric 与Data Mesh数据战略》学习心得
  • 【TDengine源码阅读】DLL_EXPORT
  • 【设备管理—磁盘调度算法】
  • 【FMMT】基于模糊多模态变压器模型的个性化情感分析
  • 动态引入document.write的脚本
  • 出于PCB设计层面考虑,连排半孔需要注意哪些事项?
  • 5. 动画/过渡模块 - 交互式仪表盘
  • talk-linux 不同用户之间终端通信
  • C++ 基础知识
  • C++—特殊类设计设计模式
  • 汇添富基金徐寅喆:低利率环境下的短债基金投资策略
  • Hadoop的目录结构和组成
  • CSS3 基础知识、原理及与CSS的区别
  • 基于FPGA的视频接口之千兆网口(六GigE纯逻辑)
  • 使用scp命令拷贝hadoop100中文件到其他虚拟机中
  • SQL、Oracle 和 SQL Server 的比较与分析
  • 数据结构(一) 绪论
  • 【C语言极简自学笔记】井字棋开发
  • Ozon平台产品关键词优化指南:精准引流与转化提升实战策略
  • 影刀RPA开发-CSS选择器介绍
  • 中国品牌日 | 以科技创新为引领,激光院“风采”品牌建设结硕果
  • vscode 同一个工作区,不同文件夹之间跳转问题
  • 嵌入式学习笔记 - HAL_ADC_ConfigChannel函数解析
  • 2025-05-13 Unity 网络基础12——大小端模式
  • centos中JDK_PATH 如何设置