日誌統計 第九屆藍橋杯省賽題目八

2021-09-13 11:53:40 字數 1755 閱讀 7904

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

其中每一行的格式是:

ts id  

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

現在小明想統計有哪些帖子曾經是"熱帖"。如果乙個帖子曾在任意乙個長度

為d的時間段內收到不少於k個讚,小明就認為這個帖子曾是"熱帖"。  

具體來說,如果存在某個時刻t滿足該帖在[t, t+d)這段時間內(注意是左閉

右開區間)收到不少於k個讚,該帖就曾是"熱帖"。  

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

【輸入格式】

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

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

對於50%的資料,     1 <= k <= n <= 1000  

對於100%的資料,   1 <= k <= n <= 100,000 

0 <= ts <= 100,000 

0 <= id <= 100,000  

【輸出格式】

按從小到大的順序輸出熱帖id。每個id一行。  

【輸入樣例】

7 10 2

0 10 10

10 10

10 1

9 1100 3

100 3

【輸出樣例】

1  3  

資源約定:

峰值記憶體消耗(含虛擬機器) < 256m

cpu消耗  < 1000ms

請嚴格按要求輸出,不要畫蛇添足地列印類似:「請您輸入...」 的多餘內容。

注意:main函式需要返回0;

只使用ansi c/ansi c++ 標準;

不要呼叫依賴於編譯環境或作業系統的特殊函式。

所有依賴的函式必須明確地在原始檔中 #include

不能通過工程設定而省略常用標頭檔案。

提交程式時,注意選擇所期望的語言型別和編譯器型別。

//日誌統計

#include#include#include#include#includeusing namespace std;

vectortiezi[100005];

setid_set;

//行數、時間間隔、點讚閾值

int num, time_gap, threshold;

bool judge(int id)

//給當前id中的所有時間點進行快速排序。

sort(tiezi[id].begin(), tiezi[id].end());//注意sort函式的用法。

//運用【尺取法】逐段判斷是否滿足閾值。有點像乙個滑動視窗。

int begin = 0;

int end = begin + threshold-1;

while(end < tiezi[id].size())

end++;

begin++;

} return false; }

int main()

//迭代每乙個id。判斷該id在限定時間間隔內對應的時刻數量是否滿足閾值。

set::iterator it;//定義用來遍歷set的迭代器。

for(it = id_set.begin(); it != id_set.end(); it++) 

//在python中迭代尤為簡單┏ (゜ω゜)=☞

for item in list:

//item就是從list中拿到的元素了。

第九屆藍橋杯省賽第八題 日誌統計

小明維護著乙個程式設計師論壇。現在他收集了乙份 點讚 日誌,日誌共有n行。其中每一行的格式是 ts id 表示在ts時刻編號id的帖子收到乙個 贊 現在小明想統計有哪些帖子曾經是 熱帖 如果乙個帖子曾在任意乙個長度為d的時間段內收到不少於k個讚,小明就認為這個帖子曾是 熱帖 具體來說,如果存在某個時...

全球變暖 第九屆藍橋杯省賽題目九

你有一張某海域nxn畫素的 表示海洋 表示陸地,如下所示 其中 上下左右 四個方向上連在一起的一片陸地組成一座島嶼。例如上圖就有2座島嶼。由於全球變暖導致了海面上公升,科學家 未來幾十年,島嶼邊緣乙個畫素的範圍會 被海水淹沒。具體來說如果一塊陸地畫素與海洋相鄰 上下左右四個相鄰畫素中有海洋 它就會被...

藍橋杯 日誌統計(第九屆第八題)

小明維護著乙個程式設計師論壇。現在他收集了乙份 點讚 日誌,日誌共有n行。其中每一行的格式是 ts id 表示在ts時刻編號id的帖子收到乙個 贊 現在小明想統計有哪些帖子曾經是 熱帖 如果乙個帖子曾在任意乙個長度為d的時間段內收到不少於k個讚,小明就認為這個帖子曾是 熱帖 具體來說,如果存在某個時...