2019-G(外卖店优先级)
注意:注意时间复杂度方面的处理,尽量挑选有效的信息遍历,避免大量无效信息的遍历
#include <bits/stdc++.h> using namespace std; //朴素方法->枚举每一秒,然后枚举每一个店铺是否有订单--->超过相应的时间复杂度 vector <int> q[100005];//每个店铺一个vector int ans=0; int N,M,T; int main(){ cin>>N>>M>>T; while(M--){ int ts,id; cin>>ts>>id; q[id].push_back(ts); } for(int i=1;i<=N;i++){ sort(q[i].begin(),q[i].end());//对每一个店铺队列进行排序 int last_time = 0,priority =0,ts; for(int order =0 ;order<q[i].size();order++){//对于每个店铺内的信息进行枚举 ts = q[i][order]; if(ts - last_time >=1) priority -= (ts - last_time -1); priority = max(0,priority); priority += 2; last_time = ts; } priority -=(T-last_time); if(priority >5 || (priority ==5 && ts !=T)||(priority ==4 && ts<T-1)) ans++; } cout<<ans; return 0; }