Type: Default 1000ms 256MiB

【队列】礼品摆放

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

小晨过生日的时候会收到很多礼物,他会把礼物摆放在卧室的展示架上。但是展示架容量有限,只能放M个礼物。每次小晨收到一个礼物时,先看一下架子上是否已经有相同的,如果有就不会摆上去,否则,就找一个位置摆放,如果架子上已经摆满了礼物,那他就会把最早放在架子上的礼物拿走,再放新的。每次摆放一个礼物,小晨的高兴程度就会增加1。问:小晨的高兴程度最终是多少。

输入格式

共 2 行。每行中两个数之间用一个空格隔开。

第一行为两个正整数 M,N,代表展示架的容量和收到的礼物数目。

第二行为 N 个非负整数,按照收到的顺序,每个数(大小不超过 1000)代表一个礼物。两个礼物相同,当且仅当它们对应的非负整数相同。

输出格式

一个整数,表示小晨最终的高兴程度

样例 #1

样例输入 #1

3 7
1 2 1 5 4 4 1

样例输出 #1

5

提示

过程如下:每行表示收到一个礼物,冒号前为处理完展示架的状况:

空:展示架初始状态为空。

1. 1:摆放礼物1。

2. 1 2:摆放礼物2。

3. 1 2:礼物1已经在展示架上。

4. 1 2 5:摆放礼物5。

5. 2 5 4:拿走礼物1,摆放礼物4。

6. 2 5 4:礼物4已经在展示架上。

7. 5 4 1:拿走礼物2,摆放礼物1。

共摆放5次礼物

【数据范围】

对于10%的数据有M=1N5对于10\%的数据有 M=1,N≤ 5。

对于100%的数据有0<M1000<N1000对于100\%的数据有 0 < M≤ 100,0< N ≤ 1000。

队列、单调队列、优先队列

Not Claimed
Status
Done
Problem
18
Open Since
2025-4-19 8:15
Deadline
2025-4-27 23:59
Extension
24 hour(s)