题目:列车调度
思路:
如何能使轨道数最少?就是每次进入一个数字,看存在的轨道的是有没有比当前值大的,大的话把当前值替换当前轨道即可,如果没有就需新增轨道!
样例:8 4 2 5 3 9 1 6 7
1 2 4 8
3 5
6 9
7
需用4个轨道即可按递减输出了!
所以按以上思路:输入一个值,看当前所有轨道是否有大于前前值的,有的话替换当前轨道值,否则新增轨道
这里需要用set集合实现,否则超时了。。。因为set集合中有一个函数:lower_bound() 可以查出当前集合中有没有比要查的值大的值,有的话直接返回此值,这样我们就可以将此值删除,然后将当前值加入集合,最后的集合长度即为轨道数了!
参考:心向阳光2014博客
代码:
#include <iostream>
#include <cstdio>
#include <set>
#include <