LQB2018b08 日誌統計

2022-02-13 21:59:31 字數 1615 閱讀 3051

小明維護著乙個程式設計師論壇。現在他收集了乙份"點讚"日誌,日誌共有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 <= 100000 0 <= ts <= 100000 0 <= id <= 100000

【輸出格式】

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

一開始覺得這個題不算太難,因我我以為時間都是順序的,,,順序的花有的數甚至不用存

在網上學得方法....取尺法

(謝大佬!!!

本來想用map計數,結果後來想想,,,用個vector取個大小就可啊!!!!!!(嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚)

中間的judge堪稱絕妙,,,,雙指標遍歷,,,,,(我想我有時間的話會搞雙指標的專題的)

1 #include 2

#define mem(a, b) memset(a, b, sizeof(a))

3#define mod 1000000007

4using

namespace

std;

5 typedef long

long

ll;6

const

int maxn = 1e5 + 5;7

const

double esp = 1e-7;8

const

int ff = 0x3f3f3f3f

;9 map::iterator it;

1011

intn, d, k;

12 vectort[maxn];

13int

ans[maxn];

1415

bool judge(int

x)16

33 r++;34}

3536

return

false;37

}3839int

main()

4051

52int cnt = 0;53

for (int i = 0; i < maxn; i++)

54if

(judge(i))

55 ans[++cnt] =i;

5657

for (int i = 1; i <= cnt; i++)

58 printf("

%d\n

", ans[i]);

5960

return0;

61 }

C語言雜記 0x0B

首先看兩個例子 一 二 這兩個例子裡面不同的地方就是s的不同,c語言程式在執行的時候記憶體分配有這樣的規則 區域性變數在棧中自動生成記憶體,比如上面所說的s就是在棧中生成記憶體 而s 指向的內存在常量區,就類似於我們在所有程式之前宣告char s 100 一樣 棧由編譯器自動生成釋放,而常量區的記憶...

2023年省賽b組

2000年的1月1日,是那一年的第1天。那麼,2000年的5月4日,是那一年的第幾天?注意 需要提交的是乙個整數,不要填寫任何多餘內容。includeint main printf 125 return 0 漢字的字形存在於字型檔中,即便在今天,16點陣的字型檔也仍然使用廣泛。16點陣的字型檔把每個...

2018湘潭大學程式設計競賽 B

題意 給你乙個字母矩陣,和測試組數,讓你統計字串的字元累計出現的次數,然後讓你找出需要找的字元,這個字元必須是每行每列裡出現次數最多的。題解 暴力瞎搞。map列舉一下啊。寫的十分暴力,絕對不是最優解。qaq。題好難讀,看了好久才懂樣例。1 include2 include 3 include4 in...