CCF-CSP 202312-1 仓库规划(Java、C++、Python)

2024-01-31 10:44

本文主要是介绍CCF-CSP 202312-1 仓库规划(Java、C++、Python),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 仓库规划
    • 问题描述
    • 输入格式
    • 输出格式
    • 样例输入
    • 样例输出
    • 子任务
  • 满分代码
    • Java
    • C++
    • Python

仓库规划

问题描述

西西艾弗岛上共有 n n n 个仓库, 依次编号为 1 ⋯ n 1 \cdots n 1n 。每个仓库均有一个 m m m 维向量的位置编码, 用来表示仓库间的物流运转关系。

具体来说, 每个仓库 i i i 均可能有一个上级仓库 j j j, 满足: 仓库 j j j 位置编码的每一维均大于仓库 i i i 位置编码的对应元素。比如编码为 ( 1 , 1 , 1 ) (1,1,1) (1,1,1) 的仓库可以成为 ( 0 , 0 , 0 ) (0,0,0) (0,0,0) 的上级, 但不能成为 ( 0 , 1 , 0 ) (0,1,0) (0,1,0) 的上级。如果有多个仓库均满足该要求, 则选取其中编号最小的仓库作为仓库 i i i 的上级仓库; 如果没有仓库满足条件, 则说明仓库 i i i 是一个物流中心, 没有上级仓库。

现给定 n n n 个仓库的位置编码, 试计算每个仓库的上级仓库编号。

输入格式

从标准输入读入数据。

输入共 n + 1 n+1 n+1 行。

输入的第一行包含两个正整数 n n n m m m, 分别表示仓库个数和位置编码的维数。

接下来 n n n 行依次输入 n n n 个仓库的位置编码。其中第 i i i ( 1 ≤ i ≤ n ) (1 \leq i \leq n) (1in) 包含 m m m 个整数, 表示仓库 i i i 的位置编码。

输出格式

输出到标准输出。

输出共 n n n 行。

i i i ( 1 ≤ i ≤ n ) (1 \leq i \leq n) (1in) 输出一个整数, 表示仓库 i i i 的上级仓库编号; 如果仓库 i i i 没有上级, 则第 i i i 行输出 0 。

样例输入

4 2
0 0
-1 -1
1 2
0 -1

样例输出

3
1
0
3

样例解释对于仓库 2 : ( − 1 , − 1 ) 2:(-1,-1) 2:(1,1) 来说,仓库 1 : ( 0 , 0 ) 1:(0,0) 1:(0,0) 和仓库 3 : ( 1 , 2 ) 3:(1,2) 3:(1,2) 均满足上级仓库的编码要求,因此选择编号较小的仓库 1 作为其上级。

子任务

50 % 50\% 50% 的测试数据满足 m = 2 m=2 m=2

全部的测试数据满足 0 < m ≤ 10 、 0 < n ≤ 1000 0<m\leq10、0<n\leq1000 0<m100<n1000,且位置编码中的所有元素均为绝对值不大于 1 0 6 10^{6} 106 的案数。

满分代码

三层循环暴力求解就行了

在这里插入图片描述

Java

import java.io.*;public class Main {static PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));static QuickInput in = new QuickInput();public static void main(String[] args) throws IOException {int n = in.nextInt(), m = in.nextInt();int[][] a = new int[n][m];for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {a[i][j] = in.nextInt();}}for (int i = 0; i < n; i++) {int flag = 0;for (int j = 0; j < n; j++) {flag = 1;for (int k = 0; k < m; k++) {if (a[j][k] <= a[i][k]) {flag = 0;break;}}if (flag == 1) {out.println(j + 1);break;}}if (flag == 0) {out.println(0);}}out.flush();}static class QuickInput {StreamTokenizer input = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));int nextInt() throws IOException {input.nextToken();return (int) input.nval;}}
}

C++

#include<bits/stdc++.h>
using namespace std;int main() {ios::sync_with_stdio(false);cin.tie(0);int n, m;cin >> n >> m;vector<vector<int>> a(n, vector<int>(m));for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {cin >> a[i][j];}}for (int i = 0; i < n; i++) {bool flag;for (int j = 0; j < n; j++) {flag = true;for (int k = 0; k < m; k++) {if (a[j][k] <= a[i][k]) {flag = false;break;}}if (flag) {cout << j + 1 << endl;break;}}if (!flag) cout << 0 << endl;}return 0;
}

Python

n, m = map(int, input().split())
a = [[int(e) for e in input().split()] for _ in range(n)]for i, row in enumerate(a):for j, compare_row in enumerate(a):if all(compare_row[k] > row[k] for k in range(m)):print(j + 1)breakelse:print(0)

这篇关于CCF-CSP 202312-1 仓库规划(Java、C++、Python)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/663494

相关文章

使用Python绘制蛇年春节祝福艺术图

《使用Python绘制蛇年春节祝福艺术图》:本文主要介绍如何使用Python的Matplotlib库绘制一幅富有创意的“蛇年有福”艺术图,这幅图结合了数字,蛇形,花朵等装饰,需要的可以参考下... 目录1. 绘图的基本概念2. 准备工作3. 实现代码解析3.1 设置绘图画布3.2 绘制数字“2025”3.3

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

python使用watchdog实现文件资源监控

《python使用watchdog实现文件资源监控》watchdog支持跨平台文件资源监控,可以检测指定文件夹下文件及文件夹变动,下面我们来看看Python如何使用watchdog实现文件资源监控吧... python文件监控库watchdogs简介随着Python在各种应用领域中的广泛使用,其生态环境也

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

深入理解C++ 空类大小

《深入理解C++空类大小》本文主要介绍了C++空类大小,规定空类大小为1字节,主要是为了保证对象的唯一性和可区分性,满足数组元素地址连续的要求,下面就来了解一下... 目录1. 保证对象的唯一性和可区分性2. 满足数组元素地址连续的要求3. 与C++的对象模型和内存管理机制相适配查看类对象内存在C++中,规

SpringCloud集成AlloyDB的示例代码

《SpringCloud集成AlloyDB的示例代码》AlloyDB是GoogleCloud提供的一种高度可扩展、强性能的关系型数据库服务,它兼容PostgreSQL,并提供了更快的查询性能... 目录1.AlloyDBjavascript是什么?AlloyDB 的工作原理2.搭建测试环境3.代码工程1.

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python

SpringBoot操作spark处理hdfs文件的操作方法

《SpringBoot操作spark处理hdfs文件的操作方法》本文介绍了如何使用SpringBoot操作Spark处理HDFS文件,包括导入依赖、配置Spark信息、编写Controller和Ser... 目录SpringBoot操作spark处理hdfs文件1、导入依赖2、配置spark信息3、cont