团体程序设计天梯赛-练习集 - L2-014 列车调度(25 分)

简介: 团体程序设计天梯赛-练习集 - L2-014 列车调度(25 分)

题目链接:点击打开链接

题目大意:略。

解题思路:必须要车号大的先出,小的后出。所以列车排队的每一队必须是从大到小排列(从右往左看),才能保证开出去的车也是从大到小的。

对于每一个想要进入并列铁轨的车:

如果车号大于每一队的队尾的车号,说明不能进入已经有的队伍,必须进入新的铁轨;

否则,选择一个最接近它车号的尾部车号的队伍进入。

其实无需保存每一个并行队列的所有值,只需要保存当前队伍的车尾(就是每一列最左边 即 每一列的最小值)即可。

因为每一次都是需要排序比较大小的,所以用set自动排序。

首先把set里面放入一个0值。每一次set的最后一个值s.rbegin()都是当前所有队列队尾的最大值。

如果当前想要进入排队队伍的t值比集合里面最大值小,就移除第一个比他大的值,然后把t插入集合中。表示的是将t值插入了最接近它车号的队伍的队尾;

否则就直接插入进去t值。作为新的队伍。


AC 代码

#include<bits/stdc++.h>#include<cmath>#define mem(a,b) memset(a,b,sizeof a)#define ssclr(ss) ss.clear(), ss.str("")#define INF 0x3f3f3f3f#define MOD 1000000007usingnamespacestd;
typedeflonglongll;
set<int>st;
intmain()
{
st.insert(0);
intn,a;
scanf("%d",&n);
for(inti=0;i<n;i++)
    {
scanf("%d",&a);
if(a<*st.rbegin()) st.erase(st.upper_bound(a));
st.insert(a);
    }
printf("%d\n",st.size()-1);
return0;
}
目录
相关文章
|
7月前
|
算法
【错题集-编程题】城市群数量
【错题集-编程题】城市群数量
团体程序设计天梯赛-练习集L2篇⑦
团体程序设计天梯赛-练习集L2篇⑦
78 0
团体程序设计天梯赛-练习集L2篇⑨
团体程序设计天梯赛-练习集L2篇⑨
166 0
|
Perl
团体程序设计天梯赛-练习集L1篇③
团体程序设计天梯赛-练习集L1篇③
136 0
|
测试技术
团体程序设计天梯赛-练习集L2篇⑥
团体程序设计天梯赛-练习集L2篇⑥
113 0
|
测试技术 C语言 C++
PTA团体程序设计天梯赛-练习集:L1-003 个位数统计
给定一个 k 位整数 N=dk−110k−1+⋯+d1101+d0 (0≤di≤9, i=0,⋯,k−1, dk−1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。 输入格式: 每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。 输出格式: 对 N 中每一种不同的个位数字,以 D:M 的格式在一行中输出该位数字 D 及其在 N 中出现的次数 M。要求按 D 的升序输出。
213 0
【程序设计天梯赛】L1-5 胎压监测
小轿车中有一个系统随时监测四个车轮的胎压,如果四轮胎压不是很平衡,则可能对行车造成严重的影响。
215 0
【程序设计天梯赛】L1-5 胎压监测
|
算法
团体程序设计天梯赛-模拟赛(下)
团体程序设计天梯赛-模拟赛(下)
488 0
团体程序设计天梯赛-模拟赛(下)
|
机器学习/深度学习 程序员 Python
团体程序设计天梯赛-模拟赛(上)
团体程序设计天梯赛-模拟赛
734 0
团体程序设计天梯赛-模拟赛(上)
PTA团体程序设计天梯赛-练习集 L2 网红点打卡攻略(模拟)
PTA团体程序设计天梯赛-练习集 L2 网红点打卡攻略(模拟)
174 0