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

相关文章

SpringBoot中六种批量更新Mysql的方式效率对比分析

《SpringBoot中六种批量更新Mysql的方式效率对比分析》文章比较了MySQL大数据量批量更新的多种方法,指出REPLACEINTO和ONDUPLICATEKEY效率最高但存在数据风险,MyB... 目录效率比较测试结构数据库初始化测试数据批量修改方案第一种 for第二种 case when第三种

python生成随机唯一id的几种实现方法

《python生成随机唯一id的几种实现方法》在Python中生成随机唯一ID有多种方法,根据不同的需求场景可以选择最适合的方案,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习... 目录方法 1:使用 UUID 模块(推荐)方法 2:使用 Secrets 模块(安全敏感场景)方法

Java docx4j高效处理Word文档的实战指南

《Javadocx4j高效处理Word文档的实战指南》对于需要在Java应用程序中生成、修改或处理Word文档的开发者来说,docx4j是一个强大而专业的选择,下面我们就来看看docx4j的具体使用... 目录引言一、环境准备与基础配置1.1 Maven依赖配置1.2 初始化测试类二、增强版文档操作示例2.

一文详解如何使用Java获取PDF页面信息

《一文详解如何使用Java获取PDF页面信息》了解PDF页面属性是我们在处理文档、内容提取、打印设置或页面重组等任务时不可或缺的一环,下面我们就来看看如何使用Java语言获取这些信息吧... 目录引言一、安装和引入PDF处理库引入依赖二、获取 PDF 页数三、获取页面尺寸(宽高)四、获取页面旋转角度五、判断

Spring Boot中的路径变量示例详解

《SpringBoot中的路径变量示例详解》SpringBoot中PathVariable通过@PathVariable注解实现URL参数与方法参数绑定,支持多参数接收、类型转换、可选参数、默认值及... 目录一. 基本用法与参数映射1.路径定义2.参数绑定&nhttp://www.chinasem.cnbs

C++中全局变量和局部变量的区别

《C++中全局变量和局部变量的区别》本文主要介绍了C++中全局变量和局部变量的区别,全局变量和局部变量在作用域和生命周期上有显著的区别,下面就来介绍一下,感兴趣的可以了解一下... 目录一、全局变量定义生命周期存储位置代码示例输出二、局部变量定义生命周期存储位置代码示例输出三、全局变量和局部变量的区别作用域

C++中assign函数的使用

《C++中assign函数的使用》在C++标准模板库中,std::list等容器都提供了assign成员函数,它比操作符更灵活,支持多种初始化方式,下面就来介绍一下assign的用法,具有一定的参考价... 目录​1.assign的基本功能​​语法​2. 具体用法示例​​​(1) 填充n个相同值​​(2)

JAVA中安装多个JDK的方法

《JAVA中安装多个JDK的方法》文章介绍了在Windows系统上安装多个JDK版本的方法,包括下载、安装路径修改、环境变量配置(JAVA_HOME和Path),并说明如何通过调整JAVA_HOME在... 首先去oracle官网下载好两个版本不同的jdk(需要登录Oracle账号,没有可以免费注册)下载完

Spring StateMachine实现状态机使用示例详解

《SpringStateMachine实现状态机使用示例详解》本文介绍SpringStateMachine实现状态机的步骤,包括依赖导入、枚举定义、状态转移规则配置、上下文管理及服务调用示例,重点解... 目录什么是状态机使用示例什么是状态机状态机是计算机科学中的​​核心建模工具​​,用于描述对象在其生命

Spring Boot 结合 WxJava 实现文章上传微信公众号草稿箱与群发

《SpringBoot结合WxJava实现文章上传微信公众号草稿箱与群发》本文将详细介绍如何使用SpringBoot框架结合WxJava开发工具包,实现文章上传到微信公众号草稿箱以及群发功能,... 目录一、项目环境准备1.1 开发环境1.2 微信公众号准备二、Spring Boot 项目搭建2.1 创建