主页
搜索
最近更新
数据统计
赞助我们
系统公告
1
/
1
请查看完所有公告
250614 星云俱乐部测试赛 d
最后更新于 2025-06-15 19:13:26
作者
leo120306
分类
个人记录
复制 Markdown
查看原文
更新内容
本题可以使用 STL 中的 `set` 完成。 使用一个 set 储存空的停机位,每一次来飞机时,寻找编号最大的小于等于 $g$ 的空位,如果空位存在,就把飞机安置进去(从集合中删除这个空位);否则机场关闭。 set 用法提示: * 使用 `s.upper_bound(x)` 寻找 `s` 中编号最小的严格大于 $x$ 的元素;使用 `--s.upper_bound(x)` 获取其前一个元素(也即编号最大的小于等于 $x$ 的元素) * 在 set 中预先插入 $0$,便于处理边界情况。 ```cpp #include <bits/stdc++.h> using namespace std; #define ll long long set<int>s; signed main(){ int n,p;cin>>n>>p; for(int i=0;i<=n;i++)s.insert(i); for(int i=1;i<=p;i++){ int x;cin>>x; auto it=--s.upper_bound(x); if(*it==0){ cout<<i-1<<endl; return 0; } s.erase(it); } cout<<p<<endl; return 0; } ```
正在渲染内容...
点赞
0
收藏
0