L2-014 列车调度 - JAVA

news/2024/11/29 22:50:30/

L2-014 列车调度


题目描述:
火车站的列车调度铁轨的结构如下图所示。

两端分别是一条入口( Entrance )轨道和一条出口( Exit )轨道,它们之间有 N 条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{ 8 , 4 , 2 , 5 , 3 , 9 , 1 , 6 , 7 }的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?

输入格式:
输入第一行给出一个整数 N ( 2 ≤ N ≤ 10 ^​ 5 ),下一行给出从 1 到 N 的整数序号的一个重排列。数字间以空格分隔。

输出格式:
在一行中输出可以将输入的列车按序号递减的顺序调离所需要的最少的铁轨条数。

输入样例:
9
8 4 2 5 3 9 1 6 7

输出样例:
4


将给定n个火车的序列,问最少需要多少个轨道才能使火车从小到大排好序


emmmmmmm

如何安排呢?
  最简单的就是 我往死里排 能排下就排
     也就是当前火车比之前安排到轨道的火车短 那么我就将这辆火车安排到他的前面
  


贪心

import java.io.*;
import java.math.*;
import java.util.*;public class Main
{public static void main(String[] args) throws IOException{int n = ini();int shu[] = new int[n + 10]; // 存当前轨道安排进来的最前面一辆int cnt = 0;// 统计个数for (int i = 0; i < n; i++){int a = ini();// 输入boolean f = false;for (int j = 0; j < cnt; j++){if (a < shu[j])// 已有数组里面有比a大的数则赋值{shu[j] = a;f = true;break;}}if (!f)// 没有则再开一条{shu[cnt] = a;cnt++;// 个数+1}}out.println(cnt);out.flush();out.close();}static StreamTokenizer sc = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));static PrintWriter out = new PrintWriter(System.out);static int ini() throws IOException{sc.nextToken();return (int) sc.nval;}}

超时1、3


dp

import java.io.*;
import java.math.*;
import java.util.*;public class Main
{public static void main(String[] args) throws IOException{int n = ini();int shu[] = new int[n]; // 存火车int dp[] = new int[n]; // dp[i]表示第shu[i]个元素为末尾的最长子序列,最短是自己int max = 0;for (int i = 0; i < n; i++){shu[i] = ini();// 输入数据dp[i] = 1;for (int j = 0; j < i; j++)// 从他前面开始试探{if (shu[j] <= shu[i])// 前面有比我小的数我就取他的长度+1dp[i] = Math.max(dp[i], dp[j] + 1);// 在j的基础上多一个}max = Math.max(max, dp[i]);// 记录最大的}out.println(max);out.flush();out.close();}static StreamTokenizer sc = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));static PrintWriter out = new PrintWriter(System.out);static int ini() throws IOException{sc.nextToken();return (int) sc.nval;}}

超时1、2、3


二分

import java.io.*;
import java.math.*;
import java.util.*;public class Main
{public static void main(String[] args) throws IOException{int n = ini();int shu[] = new int[n + 10];int len = 0;for (int i = 0; i < n; i++){int a = ini();if (len == 0 || shu[len - 1] < a)// 将第一辆车开入一个轨道// 或者 将现在的车大于前面的车 车就排到后面shu[len++] = a;else{// 现在的轨道中里面车车已经是从大到小的了// 所以直接可以二分int l = 0, r = len - 1;while (l < r){int mid = (l + r) / 2;// 中点if (shu[mid] > a)// 中间的数比输入的数小 则修改左端点为中点r = mid;else// 中间的数比输入的数大 则修改右端点为中点l = mid + 1;}shu[l] = a;// 左右端点重合的时候将a赋值赋值给这个轨道
//					System.out.println(l + "   " + shu[l]);// 可以这里把注释去掉看看哦,理解理解一下哦// printf大法非常棒的哦}}out.println(len);out.flush();out.close();}static StreamTokenizer sc = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));static PrintWriter out = new PrintWriter(System.out);static int ini() throws IOException{sc.nextToken();return (int) sc.nval;}}

二分查找


如果有说错的 或者 不懂的 尽管提 嘻嘻

一起进步!!!


闪现


http://www.ppmy.cn/news/531901.html

相关文章

7-2 列车调度(25 分)

火车站的列车调度铁轨的结构如下图所示。 两端分别是一条入口&#xff08;Entrance&#xff09;轨道和一条出口&#xff08;Exit&#xff09;轨道&#xff0c;它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入&#xff0c;最后从出口离开。在图中有9趟列车…

什么蓝牙耳机通话质量好?高清通话蓝牙耳机排行

由于无线蓝牙耳机方便佩戴易于操作&#xff0c;如今已经成为手机用户欣赏音乐的主流外设&#xff0c;蓝牙耳机的产量每年都是在递增的状态&#xff0c;使用蓝牙耳机的场景有很多&#xff0c;听歌难免会有电话的进入&#xff0c;下面分享几款高清通话的蓝牙耳机。 TOP1、南卡小…

Tomcat02

hello&#xff0c;今天带来的是tomcat的第二部分——详细讲解 目录 1.tomcat结构图 2.tomcat的启动 3.server.xml 4.关于连接器 1.tomcat结构图 根据上面的详情图片可以看出&#xff0c;整个server容器中有一个或者多个service&#xff0c;而service下又包括多个connector…

K210 standalone C开发

本文作为K210开发板的裸机开发基础&#xff0c;环境采用cmakevs code2019&#xff0c;权威请参考嘉楠官方的开发手册。文章中问题在所难免&#xff0c;欢迎讨论~ 文章目录 基础例程点亮LED灯1. SDK中对应的API2. 步骤 双核并行1. SDK中对应的API 外部中断1. SDK中对应的API 定时…

小米mix2安兔兔html5跑分,小米2跑分(小米MIX 2安兔兔跑分出炉)

小米2跑分(小米MIX 2安兔兔跑分出炉)北京时间9月11日下午&#xff0c;小米MIX 2于北京工业大学体育馆中百思特网举办的年度发布会上正式亮相。这款产品作为小米的年度旗舰&#xff0c;其硬件水准与外观工艺自然是有着大幅进化&#xff0c;全面屏2.0的全新视觉效果也让诸多米粉着…

android 手机 跑分榜,安兔兔发布8月安卓手机性能榜 第一名平均跑分646730分

中关村在线消息&#xff1a;近日&#xff0c;安兔兔发布了8月Android手机性能榜&#xff0c;榜单内成绩为统计到的平均成绩而非最高成绩。其中&#xff0c;小米下半年的当家旗舰小米10至尊纪念版&#xff0c;以646730的平均成绩位列第一名。 小米10至尊纪念版搭载的是高通骁龙8…

mysql5.625_小米A1现身跑分数据库:骁龙625 运行Android原生系统

【TechWeb报道】9月2日消息&#xff0c;近日小米国际官网出现了一款命名为小米A1的新机&#xff0c;型号MDG2&#xff0c;网友猜测它可能是小米5X的国际版或者是新开的系列。现在&#xff0c;小米A1在跑分数据库GeekBench上的配置已经泄露。 日前&#xff0c;小米国际官网射频认…

小米mix2安兔兔html5跑分,vivo X21跑分多少?高通骁龙660 AIE安兔兔跑分实测

3月19日晚上&#xff0c;vivo在江南乌镇召开新品发布会&#xff0c;正式发布了vivo X21全面屏手机&#xff0c;同时一同发布的还有vivo X21屏幕指纹手机。该机最大的看点在于采用屏幕指纹技术&#xff0c;同时还有一个小看点就是首发采用高通骁龙660 AIE处理器&#xff0c;加入…