https://pintia.cn/problem-sets/994805046380707840/problems/994805063166312448
思路其实这道题目很容易让人摸不着头脑求什么,意思就是我们要求最少的轨道数,而这个轨道上面可以摆放无线量车,但是车进轨道是有先后顺序的,我们最后只需要从我们分配的轨道中将这些车按照降序能从出口出去就是成立的轨道。
比如说这里我们分成四个轨道:
轨道1: 1 2 4 8
轨道2: 3 5
轨道3: 6 9
轨道4: 7
这样我们在车辆出去的时候就能通过先后顺序到达降序输出的效果,实际上也就是我们要划分递减子序列,我们可以通过贪心的去想,如果当前的这一辆车的编号比所有轨道中编号最小的车都大,那么这个车应该单独开一个轨道,否则的话我们就将当前的这个车放在最接近的一个编号的后面,那么这里需要注意,如果说我们在第一个轨道已经有了
8
8
8 ,当我们当前的这一辆车是
4
4
4 的时候这里的
8
8
8 其实就没有作用了,我们可以直接用
4
4
4 将其代替。最后只需要输出在这个集合中的元素个数即可,我们可以通过 set
来存储,也可以通过数组或者其他方式存储,每次寻找最接近的编号可以通过二分查找加快寻找速度
#include
using namespace std;
#define ll long long
#define mod 1000000007
#define endl "\n"
#define PII pair
#define INF 0x3f3f3f3f
const int N = 1e5+10;
int n,a[N];
int main()
{
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>n;
set S;
for(int i = 1;i >a[i];
auto it = S.lower_bound(a[i]);
if(it == S.end()) S.insert(a[i]);
else {
S.erase(it);
S.insert(a[i]);
}
}
cout
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?