題目鏈結
小明維護著乙個程式設計師論壇。現在他收集了乙份」點讚」日誌,日誌共有 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...