Java实现蓝桥杯VIP算法训练 自行车停放

该博客介绍了一道关于自行车停放的算法题目,来自蓝桥杯VIP训练。每辆自行车会停在已停自行车的左侧或右侧。博客提供了输入输出格式,包括自行车数量、起始编号及后续自行车的停放位置,并给出了样例输入和输出。
摘要由CSDN通过智能技术生成

试题 算法训练 自行车停放

资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
  有n辆自行车依次来到停车棚,除了第一辆自行车外,每辆自行车都会恰好停放在已经在停车棚里的某辆自行车的左边或右边。(e.g.停车棚里已经有3辆自行车,从左到右编号为:3,5,1。现在编号为2的第4辆自行车要停在5号自行车的左边,所以现在停车棚里的自行车编号是:3,2,5,1)。给定n辆自行车的停放情况,按顺序输出最后停车棚里的自行车编号。
输入格式
  第一行一个整数n。
  第二行一个整数x。表示第一辆自行车的编号。
  以下n-1行,每行3个整数x,y,z。
  z=0时,表示编号为x的自行车恰停放在编号为y的自行车的左边
  z=1时,表示编号为x的自行车恰停放在编号为y的自行车的右边
输出格式
  从左到右输出停车棚里的自行车编号
样例输入
4
3
1 3 1
2 1 0
5 2 1
样例输出
3 2 5 1
数据规模和约定
  n<=100000
  自行车编号为不超过100000的正整数。

package 第九次模拟;

import java.util.ArrayList;
import java.util.Scanner;

public class 自行车排放 {
   
	public static class TreeNode{
   
		int left;
		int right;
	}
	public static void main(String[] args) {
   
//		ArrayList<Integer> list = new ArrayList<Integer>();
//		ArrayList<Integer> index = new ArrayList<Integer>();
		 Scanner sc = new Scanner(System
  • 21
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 29
    评论
好的,以下是一个简单的 C 语言实现自行车停放问题的代码: ```c #include <stdio.h> #define MAX_BIKES 100 int main() { int n, m, i, j, bikes[MAX_BIKES], count = 0; printf("请输入停车场的容量和自行车的数量:\n"); scanf("%d %d", &n, &m); printf("请输入每自行车的停车位置:\n"); for (i = 0; i < m; i++) { scanf("%d", &bikes[i]); } // 模拟停车过程 for (i = 1; i <= n; i++) { // 找到空位并停车 for (j = 0; j < m; j++) { if (bikes[j] == i) { count++; bikes[j] = -1; // 标记已经停车 break; } } // 如果停车场已经满了,就停止停车 if (count == n) { break; } } // 统计剩余自行车的数量 int left = 0; for (i = 0; i < m; i++) { if (bikes[i] != -1) { left++; } } printf("停车场容量:%d,自行车数量:%d,剩余自行车数量:%d\n", n, m, left); return 0; } ``` 这个程序定义了一个整型数组 `bikes`,用于存储每自行车的停车位置。首先从用户输入中获取停车场的容量和自行车的数量,并且获取每自行车的停车位置。然后模拟停车过程:从位置 1 开始,依次找到第一个空位停车,直到停车场满了为止。在停车过程中,如果找到了可以停车的自行车,就将停车数量 `count` 加 1,并且将该自行车的位置标记为 -1,表示已经停车。停车完成后,统计剩余自行车的数量,输出停车场容量、自行车数量和剩余自行车数量。 需要注意的是,在实际情况中,停车场可能会出现自行车数量超过停车位的情况,此时需要进行额外处理。
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值