如何建設(shè)網(wǎng)站的管理平臺(tái)免費(fèi)網(wǎng)站seo
題目描述
小明維護(hù)著一個(gè)程序員論壇?,F(xiàn)在他收集了一份“點(diǎn)贊”日志,日志共有 N 行。其中每一行的格式是 ts id,表示在 ts 時(shí)刻編號(hào) id 的帖子收到一個(gè)“贊”。
現(xiàn)在小明想統(tǒng)計(jì)有哪些帖子曾經(jīng)是“熱帖”。如果一個(gè)帖子曾在任意一個(gè)長度為 DD 的時(shí)間段內(nèi)收到不少于 K 個(gè)贊,小明就認(rèn)為這個(gè)帖子曾是“熱帖”。
具體來說,如果存在某個(gè)時(shí)刻 TT滿足該帖在 [T,T+D) 這段時(shí)間內(nèi)(注意是左閉右開區(qū)間)收到不少于 K 個(gè)贊,該帖就曾是“熱帖”。
給定日志,請(qǐng)你幫助小明統(tǒng)計(jì)出所有曾是“熱帖”的帖子編號(hào)。
輸入格式
第一行包含三個(gè)整數(shù) N、DD和 K。
以下 N 行每行一條日志,包含兩個(gè)整數(shù) ts 和 id。
輸出格式
按從小到大的順序輸出熱帖 id。每個(gè) id一行。
輸入輸出樣例
輸入
7 10 2
0 1
0 10
10 10
10 1
9 1
100 3
100 3
輸出
1
3
說明/提示
對(duì)于 50% 的數(shù)據(jù),1≤K≤N≤1000。
對(duì)于 100% 的數(shù)據(jù), 10^51≤K≤N≤10^5, 0≤id,ts≤10^5。
時(shí)限 1 秒, 256M。藍(lán)橋杯 2018 年第九屆省賽
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#define x first
#define y second
using namespace std;
typedef pair<int, int> PII;
const int N = 100010;
int n, d, k;
PII logs[N];
int cnt[N];
bool st[N]; //記錄每個(gè)帖子是否是熱貼
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 <= 100000; i++){if (st[i]){cout << i << endl;}}return 0;
}