bzoj 1528 [POI2005]sam-Toy Cars 堆维护+贪心
1528: [POI2005]sam-Toy Cars
Time Limit: 5 Sec Memory Limit: 64 MB
Submit: 716 Solved: 306
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
1
2
3
1
3
1
2
Sample Output
- #include<cstring>
- #include<cmath>
- #include<cstdio>
- #include<algorithm>
- #include<iostream>
- #include<queue>
- #define ll long long
- #define inf 1000000007
- #define N 500007
- #define pa pair<int,int>
- #define Wb putchar(' ')
- #define We putchar('\n')
- #define rg register int
- using namespace std;
- inline int read()
- {
- int x=,f=;char ch=getchar();
- while(!isdigit(ch)){if(ch=='-')f=-;ch=getchar();}
- while(isdigit(ch)){x=(x<<)+(x<<)+ch-'';ch=getchar();}
- return x*f;
- }
- inline void write(ll x)
- {
- if(x<) putchar('-'),x=-x;
- if (x==) putchar();
- int num=;char c[];
- while(x) c[++num]=(x%)+,x/=;
- while(num) putchar(c[num--]);
- }
- int n,K,p,ans;
- int a[N],nxt[N],last[N];
- bool mark[N];
- priority_queue<pa,vector<pa> >q;
- int main()
- {
- n=read();K=read();p=read();
- for(int i=;i<=n;i++)last[i]=p+;
- for(int i=;i<=p;i++)
- a[i]=read();
- for(int i=p;i;i--)
- {
- nxt[i]=last[a[i]];
- last[a[i]]=i;
- }
- for(int i=;i<=p;i++)
- {
- if(mark[a[i]]){q.push(make_pair(nxt[i],a[i]));continue;}
- if(K)
- {
- ans++;q.push(make_pair(nxt[i],a[i]));
- mark[a[i]]=;
- K--;
- }
- else
- {
- while(mark[q.top().second]==)q.pop();
- mark[q.top().second]=;
- q.pop();
- ans++;q.push(make_pair(nxt[i],a[i]));
- mark[a[i]]=;
- }
- }
- write(ans);
- }
bzoj 1528 [POI2005]sam-Toy Cars 堆维护+贪心的更多相关文章
- BZOJ 1528 [POI2005]sam-Toy Cars(优先队列)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1528 [题目大意] 地上最多可以放k个玩具,现在给出需求顺序, 问最少需要去架子上拿几 ...
- P3419 [POI2005]SAM-Toy Cars / SP688 SAM - Toy Cars
一道很妙的贪心题 题面 我们考虑当我们插入时会面临的两种情况 当地上的玩具,不满 \(k\) 个时,那我们直接放就可以了. 当满了 \(k\) 个的时候,我们就要从地上拿出一个来给当前的腾位置. 这就 ...
- Bzoj 1229: [USACO2008 Nov]toy 玩具 题解 三分+贪心
1229: [USACO2008 Nov]toy 玩具 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 338 Solved: 136[Submit] ...
- BZOJ 1229 [USACO2008 Nov]toy 玩具(三分+贪心)
[题木链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1229 [题目大意] 每天对玩具都有一定的需求ni,每天可以花f价值每条购买玩具, 当天 ...
- 【BZOJ 1528】 1528: [POI2005]sam-Toy Cars (贪心+堆)
1528: [POI2005]sam-Toy Cars Description Jasio 是一个三岁的小男孩,他最喜欢玩玩具了,他有n 个不同的玩具,它们都被放在了很高的架子上所以Jasio 拿不到 ...
- bzoj 1537: [POI2005]Aut- The Bus 线段树
bzoj 1537: [POI2005]Aut- The Bus 先把坐标离散化 设f[i][j]表示从(1,1)走到(i,j)的最优解 这样直接dp::: f[i][j] = max{f[i-1][ ...
- BZOJ 1229: [USACO2008 Nov]toy 玩具
BZOJ 1229: [USACO2008 Nov]toy 玩具 标签(空格分隔): OI-BZOJ OI-三分 OI-双端队列 OI-贪心 Time Limit: 10 Sec Memory Lim ...
- 周赛-Toy Cars 分类: 比赛 2015-08-08 15:41 5人阅读 评论(0) 收藏
Toy Cars time limit per test 1 second memory limit per test 256 megabytes input standard input outpu ...
- [UOJ#268]. 【清华集训2016】数据交互[动态dp+可删堆维护最长链]
题意 给出 \(n\) 个点的树,每个时刻可能出现一条路径 \(A_i\) 或者之前出现的某条路径 \(A_i\) 消失,每条路径有一个权值,求出在每个时刻过后能够找到的权值最大的路径(指所有和该路径 ...
随机推荐
- sqli-labs学习笔记 DAY2
DAY2 sqli-labs lesson 2 手工注入 URL:http://localhost/sqli-labs-master/Less-2/ Parameter:id 注入点检测:id=2;– ...
- python—退出ipython3的help()
退出ipython3的help() 组合键:ctrl+z
- Python Pygame (4) 图像的变换
Pygame中的transform模块可以使得你能够对图像(也就是Surface对象)做各种动作,列如左右上下翻转,按角度转动,放大缩小......,并返回Surface对象.这里列举了transfo ...
- Scrum立会报告+燃尽图(十月二十六日总第十七次)
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2246 项目地址:https://git.coding.net/zhang ...
- 第五周PSP作业
PSP表格: 累积进度条: 折线图: 饼状图:
- 对其中的一个特点将NABC的分析结果
一.题目要求 每一个组员针对其中的一个特点将NABC的分析结果发表博客上(截止日期4月8日晚24:00前). 二.分析结果 特点之一:通讯方便 <渴了么>这个安卓APP特点之一就是通讯方便 ...
- 【leetcode】54.Spiral Matrix
Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral or ...
- (七)对Jmeter进行参数化的俩种方式
一.使用CSV Data Set Config: 1.添加CSV Data Set Config: 2.配置参数: Filename:文件名,指保存参数化数据的文件目录,可以相对或者绝对路径. Fil ...
- crontab & php实现多进程思路
<?php $startTime = time(); while(1) { if (time() - $startTime > 600) { exit; } // ... Do SomeT ...
- 理解promise 02
1:promise是什么? 就是(链式)包装的回调函数. 2:语法 new Promise( function(resolve, reject) {...} /* executor */ ); exe ...