日誌統計 模擬

2021-10-20 10:46:09 字數 1302 閱讀 6352

題目鏈結

小明維護著乙個程式設計師論壇。現在他收集了乙份」點讚」日誌,日誌共有 n 行。

其中每一行的格式是:

ts id

表示在 ts 時刻編號 id 的帖子收到乙個」贊」。

現在小明想統計有哪些帖子曾經是」熱帖」。

如果乙個帖子曾在任意乙個長度為 d 的時間段內收到不少於 k 個讚,小明就認為這個帖子曾是」熱帖」。

具體來說,如果存在某個時刻 t 滿足該帖在 [t,t+d) 這段時間內(注意是左閉右開區間)收到不少於 k 個讚,該帖就曾是」熱帖」。

給定日誌,請你幫助小明統計出所有曾是」熱帖」的帖子編號。

第一行包含三個整數 n,d,k。

以下 n 行每行一條日誌,包含兩個整數 ts 和 id。

按從小到大的順序輸出熱帖 id。

每個 id 佔一行。

資料範圍

1≤k≤n≤105,

0≤ts,id≤105,

1≤d≤10000

7 10 2

0 10 10

10 10

10 1

9 1100 3

100 313

如果列舉時間和每個d的話會超時,所以我們列舉點讚的時間,如果點讚時間間隔超過d的話就直接pass掉,然後標記陣列就可以了

#include

#include

#include

#include

#define x first

#define y second

using namespace std;

typedef pair<

int,

int> pii;

const

int maxn=

1e5+5;

int n,d,k;

pii dz[maxn]

;int cnt[maxn]

;bool vis[maxn]

;int

main()

sort

(dz+

1,dz+n+1)

;for

(int i=

1,j=

1;i<=n;i++)if

(j>i)

break;if

(cnt[id]

>=k)

vis[id]

=true;

}for

(int i=

0;i<=maxn;i++)if

(vis[i]

) cout

}

Apache日誌統計

加些來了解一下如何統計apache的訪問日誌,一般可以用tail命令來實時檢視日誌檔案變化,但是各種的應用系統中的日誌會非常複雜,一堆長度超過你瀏覽極限的日誌出現在你眼前時,你會覺得非常無奈,怎麼辦呢?這時可以用grep sed awk和sort等篩選工具幫助你解決這個問題。下面總結了幾個常見分析方...

web日誌統計

在對系統訪問日誌進行檢視的時候,海量的資料湧現在面前,無從看起,需要一些工具命令來幫助我們 find,首先用此命令查詢到我們要檢視的日誌位置,例如 find name access.查詢名稱中包含了access的日誌。awk檢視我們關心的字段資訊,例如 cat messages awk 4 表示佔位...

日誌統計功能

利用echarts外掛程式日誌統計出來。前台傳乙個使用者的id到後台,後台通過這個userid查詢出該使用者的寫的日誌的數量,按照月的形式顯示出來 mybatis select count body as num,month createdate as date from log where yea...