1238. 日志统计
Posted doubest
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1238. 日志统计相关的知识,希望对你有一定的参考价值。
题目链接:
https://www.acwing.com/problem/content/1240/
题解:
双指针算法,注意率先移动前向的指针,当前向指针的时间-后向指针的时间超过了规定时间的话,后项指针要移动到该区间里才行
AC代码:
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define x first #define y second using namespace std; typedef pair<int,int> PII; const int N = 1e5+10; PII logs[N]; bool st[N]; int cnt[N]; int n,d,k; int main(){ scanf("%d%d%d",&n,&d,&k); for(int i = 0;i<n;i++) scanf("%d%d",&logs[i].x,&logs[i].y); sort(logs,logs+n); for(int i=0,j=0;i<n;i++){ int id = logs[i].y; cnt[id]++; while(logs[i].x - logs[j].x >= d){ cnt[logs[j].y]--; j++; } if(cnt[id] >= k) st[id] = true; } for(int i=0;i<N-1;i++) if(st[i]) printf("%d ",i); return 0; }
以上是关于1238. 日志统计的主要内容,如果未能解决你的问题,请参考以下文章
hihocoder1238 Total Highway Distance(树形dp)
我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情