【寒假每日一题·2024】AcWing 5415. 仓库规划(补)

news/2024/5/18 23:39:26 标签: 算法, 数据结构, c语言, c++, java, python, 枚举

文章目录

  • 一、题目
    • 1、原题链接
    • 2、题目描述
  • 二、解题报告
    • 1、思路分析
    • 2、时间复杂度
    • 3、代码详解

一、题目

1、原题链接

5415. 仓库规划

2、题目描述

在这里插入图片描述
在这里插入图片描述

二、解题报告

1、思路分析

思路参考y总:y总讲解视频

(1)由于每一个仓库均有一个m维向量的位置编码,所以可以利用一个二维数组来表示n个仓库的m维向量。
(2)由于数据量较小,我们可以枚举每个仓库,然后再枚举所有仓库依次来判断是否可以作为其上级仓库,此时要注意题目中要求:若有多个满足的上级仓库,取编号最小的一个。我们可以通过编号从小到大枚举到满足条件的上级仓库直接跳出循环(break);或者只有当编号小于当前已保存答案的值时才更新答案
(3)根据(2)中得到的仓库编号,依据题目要求输出即可。

2、时间复杂度

时间复杂度为O(n2m)

3、代码详解

#include <iostream>
using namespace std;
const int N = 1010, M = 15;
int a[N][M];
int ans[N];
int main () {
    int n, m;
    cin >> n >> m;
    for (int i = 0; i < n; i++) {
        ans[i] = N;               //初始化所有仓库的上级仓库编号为一个很大的数
        for (int j = 0; j < m; j ++) {
            cin >> a[i][j];
        }
    }
    for (int i = 0; i < n; i++) {     //枚举每个仓库
        for (int j = 0; j < n; j++) {  //枚举每个仓库,从而来判断是否可作为i的上级仓库
            bool flag = true;          //记录是否满足上级仓库条件
            for (int k = 0; k < m; k++) {   //枚举j仓库的每一维,判断是否严格大于i仓库的每一维
                if (a[i][k] >= a[j][k]) flag =false;
            }
            //在满足上级仓库条件的基础上,取最小的仓库编号
            if (flag && j + 1 < ans[i]) ans[i] = j + 1;
        }
    }
    for (int i = 0; i < n ; i++) {
        if (ans[i] == N) cout << 0 << endl;  //如果ans[i]没有被更新过,说明该仓库不存在上级仓库
        else cout << ans[i] << endl;
    }
    return 0;
}

http://www.niftyadmin.cn/n/5352546.html

相关文章

网络通讯(20)-UDP协议应用实例网络聊天室

本文演示UDP协议应用,通过实例网络聊天室进行学习。 目录 实现多人聊天室的功能

计算机毕业设计 基于SpringBoot的校园闲置物品交易系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

每日OJ题_算法_前缀和④_力扣238. 除自身以外数组的乘积

目录 力扣238. 除自身以外数组的乘积 解析代码 力扣238. 除自身以外数组的乘积 238. 除自身以外数组的乘积 难度 中等 给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数…

【服务器APP】利用HBuilder X把网页打包成APP

目录 &#x1f33a;1. 概述 &#x1f33c;1.1 新建项目 &#x1f33c;1.2 基础配置 &#x1f33c;1.3 图标配置 &#x1f33c;1.4 启动界面配置 &#x1f33c;1.5 模块配置 &#x1f33c;1.6 打包成APP &#x1f33a;1. 概述 探讨如何将网页转化为APP&#xff0c;这似乎…

Nginx中的反向代理、正向代理和透明代理的深入讲解

Nginx中的反向代理、正向代理和透明代理 Nginx中的反向代理、正向代理和透明代理是三种常见的代理技术&#xff0c;它们各自具有不同的功能和使用场景。本文将详细介绍这三种代理技术的配置和使用。 一、反向代理 反向代理是指将客户端请求转发到后端服务器&#xff0c;并将…

python爬虫demo——爬取历史平均房价

简单爬取历史房价 需求 爬取的网站汇聚数据的城市房价 https://fangjia.gotohui.com/ 功能 选择城市 https://fangjia.gotohui.com/fjdata-3 需要爬取年份的数据&#xff0c;等等 https://fangjia.gotohui.com/years/3/2018/ 使用bs4模块 使用bs4模块快速定义需要爬取的…

掌握使用 React 和 Ant Design 的个人博客艺术之美

文章目录 前言在React的海洋中起航安装 Create React App安装Ant Design 打造个性化的博客风格通过路由实现多页面美化与样式定制部署与分享总结 前言 在当今数字时代&#xff0c;个人博客成为表达观点、分享经验和展示技能的独特平台。在这个互联网浪潮中&#xff0c;选择使用…

快速上手Git

目录 一、Git概述 二、Git的常用命令 Git全局配置 获取Git仓库 基本概念 本地仓库操作 远程仓库操作 分支操作 标签操作 三、在IDEA中使用Git 在IDEA中配置Git 本地仓库操作 远程仓库操作 分支操作 冲突解决 一、Git概述 Git是一个分布式版本控制工具&…