1241 外賣店優先順序

2022-09-23 11:24:10 字數 1756 閱讀 2436

「飽了麼」外賣系統中維護著 \(n\) 家外賣店,編號 \(1∼n\)。

每家外賣店都有乙個優先順序,初始時 (\(0\) 時刻) 優先順序都為 \(0\)。

每經過 \(1\) 個時間單位,如果外賣店沒有訂單,則優先順序會減少 \(1\),最低減到 \(0\);而如果外賣店有訂單,則優先順序不減反加,每有一單優先順序加 \(2\)。

如果某家外賣店某時刻優先順序大於 \(5\),則會被系統加入優先快取中;如果優先順序小於等於 \(3\),則會被清除出優先快取。

給定 \(t\) 時刻以內的 \(m\) 條訂單資訊,請你計算 \(t\) 時刻時有多少外賣店在優先快取中。

第一行包含 \(3\) 個整數 \(n,m,t\)。

以下 \(m\) 行每行包含兩個整數 \(ts\) 和 \(id\),表示 \(ts\) 時刻編號 \(id\) 的外賣店收到乙個訂單。

輸出乙個整數代表答案。

資料範圍

\(1≤n,m,t≤10^5,\)

\(1≤ts≤t,\)

\(1≤id≤n\)

輸入樣例:

2 6 6

1 15 2

3 16 2

2 16 2

輸出樣例:
1
樣例解釋

\(6\) 時刻時,\(1\) 號店優先順序降到 \(3\),被移除出優先快取;\(2\) 號店優先順序公升到 \(6\),加入優先快取。

所以是有 \(1\) 家店 (\(2\) 號) 在優先快取中。

模擬

由於每家店之間互不影響,所以可以把每家店分開,按時間排序,按時間模擬一遍

// problem: 外賣店優先順序

// contest: acwing

// url:

// memory limit: 64 mb

// time limit: 1000 ms

// // powered by cp editor (

// %%%skyqwq

#include //#define int long long

#define help

#define pb push_back

#define fi first

#define se second

#define mkp make_pair

using namespace std;

typedef long long ll;

typedef pairpii;

typedef pairpll;

template bool chkmax(t &x, t y)

template bool chkmin(t &x, t y)

template void inline read(t &x)

while (s <= '9' && s >= '0') x = x * 10 + (s ^ 48), s = getchar();

x *= f;

}const int n=1e5+5;

int n,m,t;

unordered_map> mp;

int main()

int res=0;

for(auto t:mp)

priority-=t-tss.back();

if(priority<=3)f=false;

res+=f;

}cout

}

送外賣優先順序 AcWing1241 外賣店優先順序

外賣店優先順序 一定對的做法,模擬每個時刻的情況 判斷哪些店有訂單哪些店沒有訂單 10 5次方 離散的有很多個訂單,把中間壓縮掉,連續沒有訂單的,放到購買訂單那裡處理 將所有訂單按照時間順序排序,一次處理一批訂單相同的訂單,相同時刻 模擬題偽 比較重要 include include include...

外賣店優先順序

歡迎來訪 題目鏈結 拿到題目之後,首先想想暴力的做法,暴力的做法按照時間列舉,在某個時間點上列舉所有的外賣店若是有訂單優先順序就加上cnt 訂單的數量 2,否則就減去1,再按照優先順序的數值判斷是否在優先快取中。列舉完所有時間以後,再看t時刻的優先快取中的外賣店的數量。這種暴力的時間複雜度我寫的 是...

第十屆藍橋杯A組(C C 組) 外賣店優先順序

這道題還是列舉的思路,另外還運用到了vector容器。就是按時間乙個乙個出訂單,沒出乙個判斷一次,判斷此刻店的狀態。把問題劃分為一家一家店的小問題。include include includeusing namespace std const int maxm 100000 vectora max...