您的位置:首页 > 其它

bzoj 1206: [HNOI2005]虚拟内存

2017-10-09 16:58 239 查看
题意:自己看

题解:stl

代码:

#include<bits/stdc++.h>
#define pa pair<int,int>
using namespace std;

set<pair<pa,int> >s;
map<int,pa>mp;
int n,m,ans=0;

int main()
{
scanf("%d%d",&n,&m);
for(int i=0;i<m;i++)
{
int x;
scanf("%d",&x);
if(mp.count(x))
{
set<pair<pa,int> >::iterator it=s.lower_bound(make_pair(mp[x],x));
s.erase(it);
mp[x].first++;
s.insert(make_pair(mp[x],x));
ans++;
}
else
{
if(mp.size()==n)
{
pair<pa,int>hh=*s.begin();
s.erase(s.begin());
mp.erase(hh.second);
}
mp[x]=make_pair(0,i);
s.insert(make_pair(make_pair(0,i),x));
}
}
printf("%d",ans);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: