【BZOJ 1528】[POI2005]sam-Toy Cars 贪心+堆
来源:互联网 发布:nba数据统计排名 编辑:程序博客网 时间:2024/06/05 10:31
很显然如果不够k的话就不用放回去,如果够了就需要放回去一个,这时候只要放回去的是之后用到的最远的一个就可以了,用一个nxt数组然后堆维护,最后就是弹出堆的时候需要判断一下这一个是否已经放回去了。
#include<cstdio>#include<cstring>#include<iostream>#include<queue>#define MK make_pair#define maxn 500055using namespace std;int vis[maxn],nxt[maxn],m,a[maxn],k,n,last[maxn];typedef pair<int,int>pii;priority_queue<pii>q;int main(){scanf("%d%d%d",&m,&k,&n);for(int i=1;i<=n;i++)scanf("%d",a+i),last[a[i]]=n+1;for(int i=n;i>=1;i--){nxt[i]=last[a[i]];last[a[i]]=i;}int ans=0;for(int i=1;i<=n;i++){if(vis[a[i]]){q.push(MK(nxt[i],a[i]));}else if(k){k--,ans++;vis[a[i]]=1;q.push(MK(nxt[i],a[i])); }else{while(!vis[q.top().second])q.pop();int x=q.top().second;q.pop();vis[x]=0,ans++,vis[a[i]]=1;q.push(MK(nxt[i],a[i])); }}printf("%d",ans);return 0;}
0 0
- BZOJ 1528 POI2005 sam-Toy Cars 堆+贪心
- 【BZOJ 1528】[POI2005]sam-Toy Cars 贪心+堆
- [bzoj1528/POI2005]sam-Toy Cars---贪心+堆
- bzoj 1528: [POI2005]sam-Toy Cars
- 【bzoj1528】 [POI2005]sam-Toy Cars
- 【bzoj1528】[POI2005]sam-Toy Cars
- A. Toy Cars
- 周赛-Toy Cars
- A. Toy Cars
- bzoj 1029 贪心+堆
- bzoj 2802 贪心+堆
- bzoj 1572 贪心+堆
- bzoj 1724 堆+贪心
- 贪心-BZOJ-1623-[Usaco2008 Open]Cow Cars 奶牛飞车
- bzoj 1623: [Usaco2008 Open]Cow Cars 奶牛飞车(贪心)
- CodeForces 303A Toy Cars
- Toy Cars (周赛2)
- BOZJ1528/POI 2005Toy Cars
- 11.4容器的打印
- [均摊 平衡树 || 线段树] HDU 5634 Rikka with Phi
- DRAMSim2学习1——简介
- c# XML读取创建修改节点,子节点,和值
- 配置nginx+php+mysql遇到的问题
- 【BZOJ 1528】[POI2005]sam-Toy Cars 贪心+堆
- uitextview.text赋值时,输入改变uitextview的值,监听改变状态
- js高级程序设计笔记5---BOM对象
- vue.js的devtools安装
- 网络安全-数据加密算法详解
- ReactNative组件生命周期
- Android应对进程被杀死--Service(二)
- 【Android】不同App之间通过SharedPreference共享数据
- htop使用文摘