2018省賽第九屆藍橋杯真題C語言B組第八題題解 日誌統計
標題:日誌統計
小明維護著一個程式設計師論壇。現在他收集了一份"點贊"日誌,日誌共有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一行。
【輸入樣例】
7 10 2
0 1
0 10
10 10
10 1
9 1
100 3
100 3
【輸出樣例】
1
3
資源約定:
峰值記憶體消耗(含虛擬機器) < 256M
CPU消耗 < 1000ms
思路:把每個日誌獲得的點贊資訊儲存好,按時間排序,用尺取法r在前l在後,當點贊數大於等於k,判斷時間間隔,不滿足就l往前取,r繼續往後取,直到點贊數大於等於k執行相同判斷.
程式碼:
#include<bits/stdc++.h> #define mem(a,b) memset(a,b,sizeof(a)) #define mod 1000000007 using namespace std; typedef long long ll; const int maxn = 1e5+5; const double esp = 1e-7; const int ff = 0x3f3f3f3f; map<int,int>::iterator it; int n,d,k; vector<int> t[maxn]; int ans[maxn]; bool judge(int x) { int len = t[x].size(); if(len< k) return 0; sort(t[x].begin(),t[x].end()); int l = 0,r = 0,sum = 0; while(l<= r&&r< len) { sum++; if(sum>= k) { if(t[x][r]-t[x][l]< d)//注意是小於 return 1; else l++,sum--; } r++; } return 0; } int main() { cin>>n>>d>>k; for(int i = 1;i<= n;i++) { int ts,id; scanf("%d %d",&ts,&id); t[id].push_back(ts); } int cnt = 0; for(int i = 1;i< maxn;i++) if(judge(i)) ans[++cnt] = i; for(int i = 1;i<= cnt;i++) printf("%d\n",ans[i]); return 0; }
相關推薦
第七屆藍橋杯 湊算式 C語言 B組第三題
湊算式 B DEF A + --- + ------- = 10 C GHI (如果顯示有問題,可以參見【圖1.jpg】) 這個算式中A~I代表1~9的數字,不同的字母代表不同的數字。 比如: 6
2018省賽第九屆藍橋杯真題C語言B組第九題題解 全球變暖
標題:全球變暖你有一張某海域NxN畫素的照片,"."表示海洋、"#"表示陸地,如下所示:........##.....##........##...####....###........其中"上下左右"四個方向上連在一起的一片陸地組成一座島嶼。例如上圖就有2座島嶼。 由於全
2018省賽第九屆藍橋杯真題C語言B組第八題題解 日誌統計
標題:日誌統計小明維護著一個程式設計師論壇。現在他收集了一份"點贊"日誌,日誌共有N行。其中每一行的格式是:ts id 表示在ts時刻編號id的帖子收到一個"贊"。 現在小明想統計有哪些帖子曾經是"熱帖"。如果一個帖子曾在任意一個長度為D的時間段內收到不少於K個贊,小明就
2018 藍橋杯 省賽 B組 原題 C語言B組 第8題 第九屆藍橋杯真題 日誌統計
標題:日誌統計小明維護著一個程式設計師論壇。現在他收集了一份"點贊"日誌,日誌共有N行。其中每一行的格式是:ts id 表示在ts時刻編號id的帖子收到一個"贊"。 現在小明想統計有哪些帖子曾經是"熱帖"。如果一個帖子曾在任意一個長度為D的時間段內收到不少於K個贊,小明就
2018省賽第九屆藍橋杯真題C語言B組第六題題解 遞增三元組
標題:遞增三元組給定三個整數陣列A = [A1, A2, ... AN], B = [B1, B2, ... BN], C = [C1, C2, ... CN],請你統計有多少個三元組(i, j, k) 滿足:1. 1 <= i, j, k <= N 2. Ai
2018第九屆藍橋杯省賽真題 C語言B組 第六題 遞增三元組
標題:遞增三元組 給定三個整數陣列 A = [A1, A2, … AN], B = [B1, B2, … BN], C = [C1, C2, … CN], 請你統計有多少個三元組(i, j,
2018 藍橋杯 省賽 B組 原題 C語言B組 第二題 第九屆藍橋杯真題+答案+解析
這段資訊是(一共10個漢字):4 0 4 0 4 0 4 32 -1 -16 4 32 4 32 4 32 4 32 4 32 8 32 8 32 16 34 16 34 32 30 -64 0 16 64 16 64 34 68 127 126 66 -124 67 4 66 4 66 -124 126 1
2018第九屆藍橋杯省賽真題 C語言B組 第一題
標題:第幾天 2000年的1月1日,是那一年的第1天。 那麼,2000年的5月4日,是那一年的第幾天? 注意:需要提交的是一個整數,不要填寫任何多餘內容。 答案:125 可以被四百整除,所以是
2018 藍橋杯 省賽 B組 原題 Java語言B組 第3題 第九屆藍橋杯 複數冪
標題:複數冪設i為虛數單位。對於任意正整數n,(2+3i)^n 的實部和虛部都是整數。求 (2+3i)^123456 等於多少? 即(2+3i)的123456次冪,這個數字很大,要求精確表示。答案寫成 "實部±虛部i" 的形式,實部和虛部都是整數(不能用科學計數法表示),中間
第七屆藍橋杯大賽個人賽省賽(軟體類)真題 C語言B組 3
B組2題和A組的是重複的,so,跳過~ 題目:湊算式 B DEF A + --- + ------- = 10 C GHI (如果顯示有問題,可以參見【圖1.jpg】) 這個算式中A~I代表1~9的數字,不同的字
第七屆藍橋杯大賽個人賽省賽(軟體類)真題 C語言B組 1
本來想繼續擼a組第三道的,然而一小時還沒弄會。。。so決定改天再弄。先做做b組的。畢竟報的b哈哈。 題目:煤球數目 有一堆煤球,堆成三角稜錐形。具體: 第一層放1個, 第二層3個(排列成三角形),
2018年第九屆藍橋杯C語言B組答案第二題:明碼
標題:明碼漢字的字形存在於字型檔中,即便在今天,16點陣的字型檔也仍然使用廣泛。16點陣的字型檔把每個漢字看成是16x16個畫素資訊。並把這些資訊記錄在位元組中。一個位元組可以儲存8位資訊,用32個位元組就可以存一個漢字的字形了。把每個位元組轉為2進製表示,1表示墨跡,0表示
第九屆藍橋杯真題B組 第8題
標題:日誌統計 小明維護著一個程式設計師論壇。現在他收集了一份"點贊"日誌,日誌共有N行。其中每一行的格式是: ts id 表示在ts時刻編號id的帖子收到一個"贊"。 現在小明想統計有哪些
2018第九屆藍橋杯省賽真題JAVA語言 C組真題題解答案(全)
第九屆藍橋杯省賽JAVA語言 C組題解(全) 題1 哪天返回 小明被不明勢力劫持。後被扔到x星站再無問津。小明得知每天都有飛船飛往地球,但需要108元的船票,而他卻身無分文。 他決定在x星戰打工。好心的老闆答應包食宿,第1天給他1元錢。 並
2018年第九屆藍橋杯C/C++A組省賽(最後一題)
第十題 付賬問題 【題目描述】 幾個人一起出去吃飯是常有的事。但在結帳的時候,常常會出現一些爭執。 現在有 n 個人出去吃飯,他們總共消費了 S 元。其中第 i 個人帶了 ai 元。幸運的是,所有人帶的錢的總數是足夠付賬的,但現在問題來了:每個
【noip模擬賽】地球危機(2018年第九屆藍橋杯C/C++A組省賽 三體攻擊)
題目描述 三體人將對地球發起攻擊。為了抵禦攻擊,地球人派出了 $A × B × C$ 艘戰艦,在太 空中排成一個 $A$ 層 $B$ 行 $C$ 列的立方體。其中,第 $i$ 層第 $j$ 行第 $k$ 列的戰艦(記為戰艦 $d(i, j,k)$)的生命值為 $d_{i, j,k}$。 三體人將會對地球發
藍橋杯:2018年第九屆藍橋杯省賽B組第三題—乘積尾零
如下的10行資料,每行有10個整數,請你求出它們的乘積的末尾有多少個零? 5650 4542 3554 473 946 4114 3871 9073 90 4329 2758 7949 6113 56
藍橋杯:2018年第九屆藍橋杯省賽B組第六題—遞增三元組
給定三個整數陣列 A = [A1, A2, … AN], B = [B1, B2, … BN], C = [C1, C2, … CN], 請你統計有多少個三元組(i, j, k) 滿足: 1. 1 <= i, j, k <= N 2. Ai < Bj &l
記2018年第九屆藍橋杯省賽
今天不想用腦所以就水一水部落格吧...今年的藍橋杯出的題目和之前我準備的可太不一樣了,我以為又是一堆的搜尋題,暴力杯可還行,萬萬沒想到這和我想的好像不太一樣啊,反正就是硬著頭皮做...4.1的愚人杯可還行,早早的就和我華哥一起去考場了,一進去就開始敲模板,素數篩,並查集,線段
2018年第九屆藍橋杯C/C++A組省賽 題面&部分題解
首先,原題:連結: https://pan.baidu.com/s/1UzRN6Mf2Dwp0263F-MMESg 密碼: 2ryh第一題標題:分數 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + .... 每項是前一項的一半,如果一共有20項, 求這個和是