[洛谷] T137252 火车编组

C++ 火车编组 📋 个人简介 🎉大家好,我是3月份新人榜排名第三的 ༺Blog༒Hacker༻ 💬支持我:点赞👍+收藏⭐️+留言📝 🌺格言:༺永做优质༒programmer༻ 📣火车编组 🔥问题描述 ❄️货运火车要在编组站根据挂靠车厢到达目的地重新分组。 ❄️如果一列火车有4节车厢,经过编组后,车厢的编组顺序为3,2,4,13,2,4,1,你知道编组 站是怎么编组的吗? ❄️小明到编组站参观后发现编组站的铁路有很多岔道,火车在岔道上来来回回地开动,最后列车编组就完成了。 ❄️小明想到学习过的栈操作,发现火车编组的过 阅读详情

题目背景

题目描述

货运火车要在编组站根据挂靠车厢到达目的地重新分组。如果一列火车有4节车厢,经过编组后,车厢的编组顺序为3,2,4,1,你知道编组站是怎么编组的吗?

小明到编组站参观后发现,编组站的铁路有很多岔道,火车在岔道上来来回回地开动,最后列车编组就完成了。

小明想到学习过的栈操作,发现火车编组的过程就是由若干进栈、出栈操作构成的。于是,小明编了一个程序,只要知道最后的编组要求,就能将编组方案输出。

输入格式

第1行1个正整数n,n≤100;

第2行n个小于或等于n的正整数,表示有n节车厢,编号为1,2,3,…,n,编组时按照编号进栈,第2行数据表示列车经过编组后的车厢编号顺序。

数据保证一定有解。

输出格式

一行一个由大写字母A和B构成的字符串,A表示进栈,B表示出栈。表示编组时进栈出栈的操作序列

输入输出样例

输入 #1复制

4
3 2 4 1

输出 #1复制

AAABBABB

说明/提示

样例解释:

操作如下:

A 1进栈

A 2进栈

A 3进栈

B 3出栈

B 2出栈

A 4进栈

B 4出栈

B 1出栈

所以按照AAABBABB的方式,可以把1到n的入栈序列变成3 2 4 1的出栈序列

[思路]

题目中要求,火车进站的编号是1,2, 3...n。而出战的编号如果是3,2,4, 1的话。第一个出站的火车是3.那么这样火车一定要把1,2,3先入站,即如果一个火车出站一定要保证比该火车编号小的火车一定要进站。

由此,我们使用2个变量,一个变量用来标识当前准备入站的火车编号,一个变量指向出站中当前出战的火车。如果出站的火车编号大于进站的火车编号,说明火车站中还没有该编号的火车,既然没有该编号的火车,自然是不能出站的。所以一定要该编号的火车先进站,直到该火车入站。然后才可以出站该火车。这时出站的火车变量指向下一个出站的火车。按照前面的规则继续判断。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <stack>
using namespace std;
const int N = 105;
stack<int> st;
int n;
int a[N];
int main() {
    cin >> n;
    for(int i = 1; i <= n; i++) {
        cin >> a[i];
    }


    int idx = 1;
    int x = 1;
    while(1) {
        if( idx > n) break;
        if( st.empty() ) {
            st.push(x++);
            cout << "A";
        } else {
            if(a[idx] == st.top()) {
                idx++;
                st.pop();
                cout << "B";
            } else if( a[idx] > st.top()) {
                st.push(x++);
                cout << "A";
            }
        }
    }
    return 0;

}

【C++】火车车厢重排问题 火车车厢重排的简化和理解 阅读详情

相关推荐

火车车厢重排系统C++栈的实现

C++算法实现~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

火车编组c++

c++

m0_74049786的博客 880

火车重排问题 C++

一列货运列车共有n节车厢,每节车厢将停放在不同的车站。假定n个车站的编号分别为1~n,即货运列车按照第n站至第1站的次序经过这些车站。为了便于从列车上卸掉相应的车厢,车厢的编号应与车站的编号相同,这样,在每个车站只要卸掉最后一节车厢。所以,给定任意次序的车厢,必须重新排列它们。 车厢的重排工作可以通过转轨站完成。在转轨站中有一个入轨、一个出轨和k个缓冲轨,缓冲轨位于入轨和出轨之间。假定缓冲轨按先进先出的方式运作,设计算法解决火车车厢重排问题

问题 I: 数据结构基础9-火车编组

p.s.个人自用p.ss.和2E过于相似了。

2301_79277083的博客 583

火车车厢调度C++实现

车厢调度问题   任务: 假设停在铁路调度站(如教科书中图3.1(b)所示)入口处的车厢系列的编号依次为1,2,3,…n。设计一个程序,求出所有可能由此输出的长度为n 的车厢系列。 要求: 1设计一个程序,求出由一个编号依次为1,2,、、、,n的车厢序列可能产生的所有出栈系列。 2利用双向栈存储结构实现调度站和输出序列这两个栈的空间共享。 3对于每个输出序列演示出所有操作序列的变化过程 。

货运列车的编组调度问题

研究生数学建模的2008年C题,其中的某一篇论文,希望能对大家有帮助,只是还没有程序

C++-火车编组

货运火车要在编组站根据挂常车厢到达目的地重新分组。如果一列火车有4节车厢,经过编组后,车厢的编组顺序为3,2,4,1,你知道编组站是怎么编组的吗?小明到编组站参观后发现编组站的铁路有很多岔道,火车在岔道上来来回回地开动,最后列车编组就完成了。小明想到了学习过的栈的相关操作,发现火车编组的过程就是由若干进栈、出栈操作构成的。于是,小明编了一个程序,只要知道最后的编组要求,就能将编组方案输出。

Lemon_C17y的博客 1762

基于UCD3138的数字控制硬开关全桥DC-DC电源设计实战解析

在开关电源设计中,数字控制技术正逐步取代传统模拟方案,以其卓越的灵活性、可编程性和强大的数据处理能力,成为应对复杂动态响应与智能化需求的关键。其核心原理在于通过高精度模数转换器(ADC)实时采样电压、电流信号,经由数字信号处理器(如ARM内核)运行PID等控制算法,动态调整数字脉宽调制(DPWM)输出,从而实现对功率级的精确控制。这种技术价值体现在能够轻松实现高级算法(如输入电压前馈、非线性补偿)、灵活配置保护参数,并通过PMBus等接口实现智能化监控与管理。其典型应用场景包括通信基站、服务器电源以及工业设

1312

【无标题】Contest1926 - 1112 高2022

成都市树德中学(光华校区) 11.12 题目解析

ATboss的博客 1306

Python实战:5分钟搞定抖音无水印视频下载(附完整代码)

本文系统介绍了抖音无水印视频下载的多种技术方案,重点解析了抖音视频的获取逻辑与去水印原理。文章提供了从零代码的浏览器插件到可编程的Python脚本的完整实现路径,并附带了详细的代码示例,帮助用户快速构建自己的抖音视频下载工具箱。

weixin_29089057的博客 847

雷达仿真:FMCW TDMA-MIMO 3D点云获取方法

2 信号建模摘要:通过设置时分复用(TDMA)波形结合FMCW毫米波雷达仿真获取目标的距离、速度和方位角3D点云信息。在本案例中,首先通过发射天线交替发射FMCW波形并通过接收天线依次接收回波信号从而得到雷达原始数据,其次对获取的原始数据依次经行距离、速度、角度估计从而输出目标的3D点云。阅读本文档,你将对TDMA-MIMO雷达的基本原理、毫米波雷达距离估计、速度估计以及角度估计的基本原理有所了解,另外CA-CFAR恒虚警以及MUSIC-DOA估计在本案例中也有所涉及。1 TDMA-MIMO原理。

Poulen的博客 6959

关于 火车编组的思路+代码

关于火车编组的思路+有关限定条件的想法+代码OP大体思路有关限定条件的想法代码ED 题目来源:NEFU OJ 栈-火车编组 详细链接赛后将补上 OP oj中没有配图,我就没有 想透 题,最后查到这里才完全理解,下面的示意图亦出自该帖。 大体思路 以样例为例,题意即为将A端(左至右)1,2,3,4,通过编组站调至B端(左至右)3,2,4,1。 我们可以将轨道中段视为栈,从A方向入栈,从B方向出栈。 决定出栈还是继续入栈的判据即为目前栈顶元素与目标车厢编号的大小关系:如果小于目标车厢编号,则继续入栈;如果等

Tan_Yuu的博客 2480

Unlocking Decoding-time Controllability: Gradient-FreeMulti-Objective Alignment with Contrastive Pr

将基于庞大网络语料库训练的大型语言模型(LLMs)(OpenAI,2023;Touvron 等,2023;Google,2023)与人类偏好对齐,是减少产生不安全(Wei 等,2023)、幻觉(Zhang 等,2023b)和有偏见(Gallegos 等,2023)内容的重要一步。随着偏好学习技术(如 PPO(Schulman 等,2017)、DPO(Rafailov 等,2023)及其他变体(Azar 等,2023;Ethayarajh 等,2024;

qq_52053775的博客 1169

C++数据结构(栈的应用)(火车重排问题)

//非原创,不知道怎么转载 //emmm这玩意我研究了一晚上哈哈哈哈哈 //这个是原网址,我只是做个笔记自己看的 //https://blog.youkuaiyun.com/jkay_wong/article/details/6830541 //为了重排车厢,需从前往后依次检查入轨上的所有车厢。 //如果正在检查的车厢就是下一个满足要求的车厢,可以直 //接把它放到出轨上。否则,则把它移动到缓冲轨上,直到 //按输出顺序要求轮到它的时候才可以将他放到出轨上。缓 //冲轨是按照栈的方式使用的,因为车厢的进出都是在缓

weixin_52099599的博客 1336

3D视觉实战之双目相机物体尺寸实时测量

视差图滤波能够将稀疏视差转变为稠密视差,并在一定程度上降低视差图噪声,改善视差图的视觉效果,但是比较依赖初始视差图的质量。的目标是获得左右两个相机的内参、外参和畸变系数,其中内参包括左右相机的fx,fy,cx,cy,外参包括左相机相对于右相机的旋转矩阵和平移向量,畸变系数包括径向畸变系数(k1, k2,k3)和切向畸变系数(p1,p2)以及其他一些畸变类型。:相比于昂贵的专业设备,便宜的双目摄像头可以显著降低成本,使得实时点云生成技术更加普及和经济实惠。

qq_53545309的博客 2099

【WRF-FDDA】观测 Obs nudging 的配置与使用说明(中)

WRF-FDDA

WW、forever的博客 281

算法竞赛进阶指南---0x11 (栈)火车进栈

题面 题解1 直接模拟进出栈过程,state1表示已经出栈的火车,可以用vector来存,state2 表示栈中火车,可以用stack来存,state3表示未进栈的火车,可以用数字来存 两个操作图中1操作是火车进栈,2是火车出栈,因为要按照字典序输出,应该先执行操作2,执行操作1来保证字典序正确 直接用dfs来暴力模拟过程,即可输出答案 代码1 #include<bits/stdc++.h> using namespace std; int n,cnt=20; vector&l

qq_44791484的博客 425

短距激光雷达专业讲解:定义、架构、技术路线与选型逻辑

短距激光雷达,通常指有效探测距离不大于 50 米的激光雷达产品。它主要服务于服务机器人、扫地机器人、AGV/AMR、无人机、智能手机、AR/VR、工业安全等中近距感知场景。它与车载中长距激光雷达的最大区别,不是“探测距离短一点”,而是整套工程目标不同。短距激光雷达的核心诉求是:小体积、低成本、高帧率、强抗光、嵌入式集成。单价从百元级扫地机模组,到数千元级工业 3D 雷达不等。一句话概括:中长距车载激光雷达追求远距离、高可靠、车规寿命;

致力于lidar应用开发 151

c++栈的练习题

暑假练习

loveliveluo的博客 1034

Python爬虫实战:基于最新技术爬取国家企业信用信息公示系统数据

本文将详细介绍如何使用Python最新技术栈构建一个高效、稳定的国家企业信用信息公示系统爬虫。我们将从爬虫基础知识讲起,逐步深入到反爬机制应对、数据解析与存储等高级话题,最终实现一个完整的爬虫系统。文章包含大量实战代码示例,适合中高级Python开发者学习参考。网络爬虫(Web Crawler)是一种自动获取网页内容的程序,广泛应用于搜索引擎、数据分析和商业情报收集等领域。通用爬虫:如搜索引擎爬虫,广泛抓取互联网公开信息聚焦爬虫:针对特定领域或网站的数据采集增量式爬虫:只抓取更新内容,减少资源消耗。

2201_76125261的博客 2408

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

火车编组【入门】

比如,有4辆火车,初始的顺序是1 2 3 4,最后编组的结果是3 2 4 1,那么只需要准备一个栈,让这4辆火车按照:进栈、进栈、进栈、出站、出站、进栈、出站、出站的顺序进行栈的操作就可以得到3 2 4 1的编组结果。货运火车要在编组站根据挂靠车厢到达目的地重新分组,如果一列火车有4节车厢,经过编组后,车厢的编组顺序为3,2,4,1;于是小明编了一个程序,只要知道最后的编组要求,就能将编组方案输出。第1行1个正整数 n,n<=100,n个小于或等于 n 的正整数,表示有 n节车厢,编号为 1,2,3,……

zhangyang1234556的博客 632

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

车厢重组c++

这题其实只需要把冒泡排序的模版代码改一改就可以了

雷电wrz的博客 504

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

列车车厢重排问题详解

该问题的核心在于,给定一列货车,其车厢编号是杂乱无章的,我们需要通过一个特定的转轨站,利用有限数量的缓冲轨道,将列车车厢按照编号的顺序重新排列。列车车厢重排问题是一个复杂而有趣的算法挑战,它不仅测试了我们对数据结构和算法的理解,还提供了一个实际问题的解决方案。此外,还可以根据具体的应用场景,如考虑车厢的物理属性、轨道的布局和长度限制等因素,对问题进行定制化的扩展。如果它恰好是我们要找的车厢编号(即当前需要的最小或最大编号),则直接将其移动到出轨的右端,并更新追踪编号。

wangnvshibeib的博客 1351

火车车厢重排问题,C++详解

火车车厢重排问题实验说明:转轨站示意图如下:火车车厢重排过程如下: 火车车厢重排算法伪代码如下: 这是一看就是一道模拟题,主要是根据题目给出的伪代码实现对应的过程,要求比较强的代码复现能力与调试能力。 一共需要4个队列,一个是入轨的队列。还有三个缓冲队列,具体过程为先拿出入轨队列的第一个元素,如果是1的话就说明要出队作为结果,如果不是就要放入缓冲队列,然后再从入轨里拿队员。 关键来了,后面要找出缓冲队列中队尾元素小于我们拿出来的这个值的元素,然后找到这几个元素的最

2301_79431343的博客 963

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 210
上一篇: 【洛谷】P1031 [NOIP2002 提高组] 均分纸牌
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值