西电2018校赛 Operating System

2019-04-13 14:02发布

详见https://ac.nowcoder.com/acm/contest/107/F?&headNav=www 解题思路:其实就是当内存不够,又有新的东西要放入时,就把内存中出现的下一个网页最远的给剔除内存。需要用优先队列来维护。具体思路就是每当提一个网页进入内存时,和它一样的下一个网页放入优先队列维护。如果这个网页已经没有下一个相同网页了,那直接提出好了。然后每次有新的网页要放入时,就把优先队列中最远的那个网页去除即可。 #include #include #include #include using namespace std; struct node { int id,u; node(){ } node(int id,int u):id(id),u(u){ } }; priority_queue q; queue s[50001]; int a[50001],ins[50001],cnt,ans; bool operator<(node a,node b) { return a.id