小明維護著乙個程式設計師論壇。現在他收集了乙份"點讚"日誌,日誌共有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一行。
【輸入樣例】710
2010
1010
101019
1100
3100
3 【輸出樣例】
13
藍橋杯藍橋杯我來啦!!
這道題應該算是比較簡單的把,我可能對雙指標情有獨鍾,所以又來寫他的題解了=-=被雙指標打擊到了qaq
這道題很直觀直接模擬即可。
把時間放入對應id的容器中,然後sort一下。
然後用尺取法的思想找一下有沒有符合要求的id即可,
因為我們id本身遍歷的時候就是從大到小遍歷的,所以直接輸出即可。
然後注意一下邊界條件就可以啦,要在d的時間範圍內,不能包括d,也就是只能小於d
雙指標l1, l2走一遍就可以啦,遇到符合條件的break,成功繼承zz思想哈哈哈。
這裡有個地方就是不需要還原計數,因為根據尺取法的思想嘛,已經產生了固定滿足要求的區間了,所以從第乙個符合要求的地方開始,後面的全都符合大於d的要求,因為l1和l2都在++嘛。相反如果還原計數為0的話會比較麻煩。
#include
using
namespace std;
const
int n =
1e5+10;
vector<
int> a[n]
;vector<
int> ans;
intmain()
for(
int i =
0; i <= s; i++
)else
} l2++;}
if(flag)
}int siz = ans.
size()
;for
(int i =
0; i < siz; i++
)return0;
}
2023年第九屆藍橋杯 C 省賽B組 全區變暖
題目 你有一張某海域nxn畫素的 表示海洋 表示陸地,如下所示 其中 上下左右 四個方向上連在一起的一片陸地組成一座島嶼。例如上圖就有2座島嶼。由於全球變暖導致了海面上公升,科學家 未來幾十年,島嶼邊緣乙個畫素的範圍會被海水淹沒。具體來說如果一塊陸地畫素與海洋相鄰 上下左右四個相鄰畫素中有海洋 它就...
2023年第九屆藍橋杯省賽參賽有感
我參加的是江蘇賽區的c c 程式設計大學b組,最後獲得二等獎。不知道a組的廝殺有多麼慘烈,但我覺得我這個二等獎還是拿的比較容易的。當時參加的時候是大二,我的專業是資訊工程,本身在程式設計方面不是特別側重,主要是電路,模電,數電,訊號系統,數字訊號處理等方面的,對於程式設計的話,其實只有一門c語言的入...
藍橋杯省賽考點 如何評價2018第九屆藍橋杯省賽
04 09更新 省賽結果出來了,省一。下個月可以去北京參加決賽啦!省賽完結,c c b組。不是什麼大神,不知道能不能拿省一進國賽。一共10道題,5個小題5個大題,小題應該對了2 3個,6 7 8這三個大題應該能全對,第10題大概能過40 的測試資料。開始考試之前,測試了一下機器,不知道為啥測試用fr...