【CSP试题回顾】202312-1-仓库规划

news2024/11/17 18:59:58

CSP-202312-1-仓库规划

解题思路

  1. 定义结构体和变量

    • 结构体 MyWareHouse,用来存储每个仓库的索引(编号)和位置编码。
    • 定义了整数 nm,分别代表仓库的数量和位置编码的维数。
    • 定义了一个 vector<MyWareHouse> 的列表 wareHouseList,用来存储所有仓库的信息。
  2. 输入数据

    • 首先,程序从标准输入读取 n(仓库个数)和 m(位置编码的维数)。
    • 然后,程序进入一个循环,读取每个仓库的位置编码,并将仓库信息存储到 wareHouseList 中。每个仓库的索引设置为其在输入序列中的位置加一(因为仓库编号从1开始)。
  3. 寻找上级仓库

    • 对于 wareHouseList 中的每一个仓库,程序尝试找到它的上级仓库。
    • 程序通过两层循环来完成这个任务:外层循环遍历所有仓库(假设当前仓库为 i),内层循环也遍历所有仓库(假设当前仓库为 j),以找到 i 的上级仓库。
    • 在内层循环中,程序比较仓库 i 和仓库 j 的位置编码的每一维。如果 i 的每一维都小于 j 的相应维度,则变量 find 会增加。如果 find 的值等于位置编码的维数 m,说明仓库 j 的每一维都大于仓库 i 的对应维度,即仓库 j 可以成为仓库 i 的上级。
    • 如果找到了上级仓库,则将该上级仓库的索引赋值给变量 index 并退出内层循环;如果没有找到,则 index 保持为0。

完整代码

#include<iostream> 
#include<vector>
using namespace std;

struct MyWareHouse
{
    int index;
    vector<int>position;
};
int n, m;
vector<MyWareHouse>wareHouseList;

int main() {
    cin >> n >> m;
    for (int i = 0; i < n; i++)
    {
        MyWareHouse t;
        t.index = i + 1;
        for (int j = 0; j < m; j++)
        {
            int pos;
            cin >> pos;
            t.position.push_back(pos);
        }
        wareHouseList.push_back(t);
    }

    
    for (int i = 0; i < n; i++)
    {
        int index = 0; // 默认没有找到,索引为0
        for (int j = 0; j < n; j++)
        {
            int find = 0; // 每有一维大于 find++,直到 find 为 m 
            // 比较位置坐标
            for (int k = 0; k < m; k++)
            {
                if (wareHouseList[i].position[k] < wareHouseList[j].position[k]) {
                    find++;
                }
            }
            if (find == m)
            {
                index = wareHouseList[j].index;
                break;
            }
        }
        cout << index << endl;
    }
    return 0; 
}

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1485432.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

springboot心灵治愈交流平台源码和论文

本论文主要论述了如何使用JAVA语言开发一个心灵治愈交流平台 &#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述心灵治愈交流平台的当前背景以及系统开发的目的&a…

ssm666社区流浪动物救助领养系统的设计与开发

** &#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;** 一 、设计说明 1.1 课题…

Vue开发实例(一)Vue环境搭建第一个项目

Vue环境搭建&第一个项目 一、环境搭建二、安装Vue脚手架三、创建Vue项目 一、环境搭建 下载方式从官网下载&#xff1a;http://nodejs.cn/download/ 建议下载v12.16.0版本以上的&#xff0c;因为版本低无法创建Vue的脚手架 检验是否安装成功 配置环境变量 新增NODE_HOME&…

termux上安装Python

Termux是一款Android平台下的终端模拟器和Linux环境应用&#xff0c;它允许用户在移动设备上访问Linux命令行界面&#xff0c;以便使用命令行工具、脚本、开发环境等功能。 要在Termux上安装Python&#xff0c;请按照以下步骤进行操作&#xff1a; 一&#xff0c;下载termux …

Linux 开发工具vim、gcc/g++、makefile

目录 Linux编辑器-vim 1. 基本概念 2. 基本操作 3. 正常模式命令集 4. 末行模式命令集 5. 其他操作 6. 简单vim配置 Linux编译器-gcc/g 1、基本概念 2、程序翻译的过程 3. gcc如何完成程序翻译 4、动静态库 Linux项目自动化构建工具-make/Makefile 1、背景 2、…

Springboot+vue的医药管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的医药管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层…

C#,基于密度的噪声应用空间聚类算法(DBSCAN Algorithm)源代码

1 聚类算法 聚类分析或简单聚类基本上是一种无监督的学习方法&#xff0c;它将数据点划分为若干特定的批次或组&#xff0c;使得相同组中的数据点具有相似的属性&#xff0c;而不同组中的数据点在某种意义上具有不同的属性。它包括许多基于差分进化的不同方法。 E、 g.K-均值…

Vue开发实例(十)Tabs标签页打开、关闭与路由之间的关系

创建标签页 一、创建标签页二、点击菜单展示新标签页1、将标签数据作为全局使用2、菜单点击增加标签页3、处理重复标签4、关闭标签页 三、点击标签页操作问题1&#xff1a;点击标签页选中菜单进行高亮展示问题2&#xff1a;点击标签页路由也要跳转 四、解决bug 先展示最终效果 …

Bililive-go 实现直播自动监控录制

前言 最近有直播录制的需求&#xff0c;但是自己手动录制太麻烦繁琐&#xff0c;于是用了开源项目Bililive-go进行全自动监控录制&#xff0c;目前这个项目已经有3K stars了 部署 为了方便我使用了docker compose 部署 version: 3.8 services:bililive:image: chigusa/bilil…

B082-SpringCloud-Eureka

目录 微服务架构与springcloud架构演变为什么使用微服务微服务的通讯方式架构的选择springcloud概述场景模拟之基础架构的搭建模拟微服务之间的服务调用目前远程调用的问题 eureka注册中心的作用注册中心的实现服务提供者注册到注册中心 springcloud基于springboot 微服务架构与…

独立游戏《星尘异变》UE5 C++程序开发日志1——项目与代码管理

写在前面&#xff1a;本日志系列将会向大家介绍在《星尘异变》这款模拟经营游戏&#xff0c;在开发时用到的与C相关的泛用代码与算法&#xff0c;主要记录UE5C与原生C的用法区别&#xff0c;以及遇到的问题和解决办法&#xff0c;因为这是我本人从ACM退役以后第一个从头开始的项…

Windows操作系统中各种功能、快捷键

目录 引言一、系统1.任务管理器&#xff08;当前进程属性&#xff09;2.画图板3.计算器4.CMD命令行窗口5.控制面板6.记事本7.写字板 二、浏览器1.打开开发者工具2.页面搜索 三、AcWing1.替换2.对多处进行相同操作3.光标变为下划线 引言 由于本专业是计算机专业&#xff0c;所以…

力扣 分割回文串

输出的是不同的分割方案 class Solution { public:vector<vector<bool>>flag;vector<string>ans;vector<vector<string>>nums;void dfs(string &s,int i){int ns.size();if(in){i表示s长度&#xff0c;等于即全部分割完毕nums.push_back(ans…

力扣hot100:42.接雨水

一、从单个水柱本身考虑 下标为i的水柱能接的雨水&#xff0c;取决于它左边最高的水柱 和 右边最高的水柱的最小值&#xff08;包括它本身&#xff09;。 为了理解这一性质&#xff0c;我们可以这样想象&#xff1a;取出左边最高和最边最高的水柱&#xff0c;将其比作一个碗的边…

python封装,继承,复写详解

目录 1.封装 2.继承 复写和使用父类成员 1.封装 class phone:__voltage 0.5def __keepsinglecore(self):print("单核运行")def callby5g(self):if self.__voltage > 1:print("5g通话开启")else:self.__keepsinglecore()print("不能开启5g通…

c++高阶数据结构 二叉搜索树的实现

二叉搜索树 二叉搜索树二叉搜索树的基本概念二叉搜索树的查找方法 二叉搜索树的代码实现二叉搜索树的结点二叉树的构造函数 析构函数二叉排序树的插入二叉树的删除二叉树的拷贝构造递归删除版本 完整代码 二叉搜索树 二叉搜索树的基本概念 二叉搜索树的特点&#xff1a; 左子…

代码随想录算法训练营第八天

344. 反转字符串 方法&#xff1a; 方法一&#xff1a; 直接用reverse函数 注意&#xff1a; 代码&#xff1a; class Solution { public:void reverseString(vector<char>& s) {return reverse(s.begin(), s.end());} };运行结果&#xff1a; 方法&#xff1…

一份简单的前端开发指南

文章目录 一、HTML1、表格2、常见标签3、行内、块级4、行内块级元素 二、CSS1、三种样式2、链接样式3、浮动4、清除浮动5、伪类&#xff0c;伪元素6、position7、后代选择器8、弹性布局 三、JavaScripts1、null和undefined的区别2、var let const3、原生数据类型4、双等和三等5…

C++入门和基础

目录 文章目录 前言 一、C关键字 二、命名空间 2.1 命名空间的定义 2.2 命名空间的使用 2.3 标准命名空间 三、C输入&输出 四、缺省参数 4.1 缺省参数的概念 4.2 缺省参数的分类 五、函数重载 5.1 函数重载的简介 5.2 函数重载的分类 六、引用 6.1 引用的…

Linux和Windows操作系统在腾讯云幻兽帕鲁服务器上的内存占用情况如何?

Linux和Windows操作系统在腾讯云幻兽帕鲁服务器上的内存占用情况如何&#xff1f; 对于Linux操作系统&#xff0c;有用户分享了个人最佳实践来解决内存问题&#xff0c;包括使用Linux脚本让服务器每天重启一次&#xff0c;以及建议在不需要时尽量减少虚拟内存的使用。此外&…