1 条题解
-
0
自动搬运
来自洛谷,原作者为

liaoxingrui
壶关搬运于
2025-08-24 23:11:27,当前版本为作者最后更新于2025-03-21 16:57:45,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
Content
有 堆总共 件衣服和 个笔记本(放在任意一堆衣服上),每件衣服将在第 个时刻放在 这个位置,要求笔记本上面不能有衣服,问最少要移动多少次笔记本?(笔记本最开始在的位置由你决定)
Solution
我们可以发现笔记本在越后面才需要换,则越好,那么我们就可以用一个
set将第 时刻的衣服所放在的位置存起来(因为set有去重),若判断到所有的位置都以出现,则将笔记本换到最后一个位置,再将set清空,并将答案加一,重复操作即可。Code
#include<bits/stdc++.h> using namespace std; const int N=1e6+5; int n,k,x,ans; set<int> s; int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n>>k; while(n--){ cin>>x; s.insert(x); if(s.size()==k){ s.clear(); s.insert(x); ans++; } } cout<<ans; return 0; }
- 1
信息
- ID
- 11608
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 3
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者