蓝桥杯 日志统计 尺取
生活随笔
收集整理的這篇文章主要介紹了
蓝桥杯 日志统计 尺取
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
參考代碼:
#include<bits/stdc++.h> using namespace std; typedef long long ll; vector<int> v[100005]; //定義容器用于存放第i篇帖子被點贊的時間 int main() {ios::sync_with_stdio(false); int n, d, k;cin >> n >> d >> k;int ts, id;for(int i = 0; i < n; i++) {cin >> ts >> id;v[id].push_back(ts);}for(int i = 0; i < 100005; i++) //最多有個100000篇帖子,進行循環 {int len = v[i].size(); //第i篇帖子收到的點贊數 if(len > 0) {sort(v[i].begin(), v[i].end()); //對點贊的時刻數從小到大排序 //請注意n的值最大也就100000,分配到每個v[i]數量不會很大,因此排序不會超時 int head = 0, tail = -1, sum = 0; //定義頭尾指針,以及尺取的和 while(tail < len) //循環條件是尾指針沒有超出邊界 {sum++; //循環一開始首先尺取和+1,隨后將tail指針向后移動一位 tail++; //請注意起初tail指針是-1 if(tail == len)break; //指針沒有到達邊界退出循環 while(v[i][tail] - v[i][head] > d-1) //當頭尾指針尺取的時間段超出d時,移動head指針 {sum--; //移動head指針時,需要將尺取的和-1 head++;}if(sum >= k) //當尺取和滿足要求,即輸出是熱門帖子 {cout << i << endl;break;}}}}return 0; } 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的蓝桥杯 日志统计 尺取的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 嗓子哑了怎么办
- 下一篇: 一个月可以减肥10斤吗