CCF-CSP真题《202212-2 训练计划》思路+python题解

news2024/9/30 15:18:25

想查看其他题的真题及题解的同学可以前往查看:CCF-CSP真题附题解大全

试题编号:202212-2
试题名称:训练计划
时间限制:1.0s
内存限制:512.0MB
问题描述:

问题背景

西西艾弗岛荒野求生大赛还有 n 天开幕!

问题描述

为了在大赛中取得好成绩,顿顿准备在 n 天时间内完成“短跑”、“高中物理”以及“核裂变技术”等总共 m 项科目的加强训练。其中第 i 项(1≤i≤m)科目编号为 i,也可简称为科目 i。已知科目 i 耗时 ti 天,即如果从第 a 天开始训练科目 i,那么第 a+ti−1 天就是该项训练的最后一天。

大部分科目的训练可以同时进行,即顿顿在同一天内可以同时进行多项科目的训练,但部分科目之间也存在着依赖关系。如果科目 i 依赖科目 j,那么只能在后者训练结束后,科目 i 才能开始训练。具体来说,如果科目 j 从第 a 天训练到第 a+tj−1 天,那么科目 i 最早只能从第 a+tj 天开始训练。还好,顿顿需要训练的 m 项科目依赖关系并不复杂,每项科目最多只依赖一项别的科目,且满足依赖科目的编号小于自己。那些没有任何依赖的科目,则可以从第 1 天就开始训练。

对于每一项科目,试计算:

1)最早开始时间:该科目最早可以于哪一天开始训练?

2)最晚开始时间:在不耽误参赛的前提下(n 天内完成所有训练),该科目最晚可以从哪一天开始训练?

n 天内完成所有训练,即每一项科目训练的最后一天都要满足 ≤n。需要注意,顿顿如果不能在 n 天内完成全部 m 项科目的训练,就无法参加大赛。这种情况下也就不需要再计算“最晚开始时间”了。

输入格式

从标准输入读入数据。

输入共三行。

输入的第一行包含空格分隔的两个正整数 n 和 m,分别表示距离大赛开幕的天数和训练科目的数量。

输入的第二行包含空格分隔的 m 个整数,其中第 i 个(1≤i≤m)整数 pi 表示科目 i 依赖的科目编号,满足 0≤pi<i;pi=0 表示科目 i 无依赖。

输入的第三行包含空格分隔的 m 个正整数,其中第 i 个(1≤i≤m)数 ti 表示训练科目 i 所需天数,满足 1≤ti≤n。

输出格式

输出到标准输出中。

输出共一行或两行。

输出的第一行包含空格分隔的 m 个正整数,依次表示每项科目的最早开始时间。

如果顿顿可以在 n 天内完成全部 m 项科目的训练,则继续输出第二行,否则输出到此为止。

输出的第二行包含空格分隔的 m 个正整数,依次表示每项科目的最晚开始时间。

样例 1 输入

10 5
0 0 0 0 0
1 2 3 2 10

样例 1 输出

1 1 1 1 1
10 9 8 9 1

样例 1 说明

五项科目间没有依赖关系,都可以从第 1 天就开始训练。

10 天时间恰好可以完成所有科目的训练。其中科目 1 耗时仅 1 天,所以最晚可以拖延到第 10 天再开始训练;而科目 5 耗时 10 天,必须从第 1 天就开始训练。

样例 2 输入

10 7
0 1 0 3 2 3 0
2 1 6 3 10 4 3

样例 2 输出

1 3 1 7 4 7 1

样例 2 说明

七项科目间的依赖关系如图所示,其中仅科目 5 无法在 10 天内完成训练。

具体来说,科目 5 依赖科目 2、科目 2 又依赖于科目 1,因此科目 5 最早可以从第 4 天开始训练。

样例 3 输入

10 5
0 1 2 3 4
10 10 10 10 10

样例 3 输出

1 11 21 31 41

子任务

70 的测试数据满足:顿顿无法在 n 天内完成全部 m 项科目的训练,此时仅需输出一行“最早开始时间”;

全部的测试数据满足 0<n≤365 且 0<m≤100。

真题来源:训练计划

 感兴趣的同学可以如此编码进去进行练习提交

直接无脑解(70分):

n, m = map(int,input().split())
p = [0]+[i for i in map(int,input().split())]
t = [0]+[i for i in map(int,input().split())]
earliest = [0 for _ in range(m+1)]
latest = [0 for _ in range(m+1)]
for i in range(1,m+1):
    if p[i]==0:
        earliest[i] = 1
        latest[i] = n-t[i]+1
    else:
        earliest[i] = earliest[p[i]]+t[p[i]]
        latest[i] = n-latest[p[i]]-t[i]
print(*earliest[1:])
if min(latest)>0:
    print(*latest[1:])

 运行结果: 

错误解析:

        这种解法属于第二题看到题直白写就好,这个题解虽然有70分,但是我在写的时候没有考虑好最晚开始时间是否输出的问题,这是不符题意的,但也有70分入手。 


满分题解: 

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

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

相关文章

总结Anisble中的任务执行控制并练习

文章目录一、循环1.简单循环2.循环散列或字典列表二、条件三、触发器四、处理失败任务1.ignore_errors2.force_handlers3.changed_when4.failed_when5.block五、 练习建立大小为1500M名为/dev/sdb1的设备利用ansible循环安装且开启vsftpd&#xff0c;apache&#xff0c;dns&…

java8新特性【2023】

Lambda表达式 新的一套语法规则 是一个匿名函数 Testpublic void test1(){Runnable r1 new Runnable(){Overridepublic void run() {System.out.println("线程A");}};r1.run();System.out.println("");Runnable r2 () -> System.out.println("…

linux 安装rabbitmq 文档

1、下载rabbitMQ https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.9.15对应的erlang https://packagecloud.io/app/rabbitmq/erlang/search?distel%2F7https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-23.3.4.11-1.el7.x86_64.rpm?distro_ver…

Mysql | Error Code: 1153 - Got a packet bigger than ‘max_allowed_packet‘ bytes

描述 在执行sql语句插入的时候&#xff0c;报出了Error Code: 1153 - Got a packet bigger than ‘max_allowed_packet’ bytes 错误 解决方法 &#x1f6a9; 临时调整&#xff0c;重启后失效 1️⃣ 查询默认的max_allowed_packet值大小 执行语句&#xff1a; SHOW VARIABLE…

[Android Studio] Android Studio Virtual Device虚拟机的功能试用

&#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea; Android Debug&#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea; Topic 发布安卓学习过程中遇到问题解决过程&#xff0c;希望我的解决方案可以对小伙伴们有帮助。 &#x1f680;write…

JS:构造函数和原型

目录 1.构造函数和原型 1.1 概述 1.2 构造函数 1.2.1创建 1.2.2 静态成员和实例成员 1.3 构造函数原型 prototype 1.4 对象原型_proto_ 1.5 constructor 构造函数 1.6 构造函数、实例、原型对象的关系 1.7 原型链 2. 继承 2.1 call() 1.构造函数和原型 1.1 概述 在…

OpenStack

名词解释RAM 身份验证管理SDN 软件定义网络虚拟化为什么openstack清一色的KVM&#xff1f;KVM属于redhat&#xff0c;开源可定制nentron实现SDNSDN实现了东西向流量管理&#xff08;VPC与VPC的流量管理&#xff09;SDNVXLan实现隧道网络&#xff08;对等连接&#xff09;SDN在公…

【郭东白架构课 模块一:生存法则】04|法则二:架构师为什么要学习马斯洛的需求理论?

你好&#xff0c;我是郭东白&#xff0c;今天我们来聊聊架构师的第二个生存法则&#xff1a;架构活动需要尊重和顺应人性。 自从学习计算机专业的那一天起&#xff0c;我们似乎就走入了一个简单直接的机器世界&#xff0c;一个完全靠逻辑和数字主宰的世界。于是我们总不自觉地认…

如何将数据库结构导入到word

在navicat执行查询语句 SELECT COLUMN_NAME 备注, COLUMN_COMMENT 名称, COLUMN_TYPE 数据类型, false as 是键 FROM INFORMATION_SCHEMA.COLUMNS where -- wx 为数据库名称&#xff0c;到时候只需要修改成你要导出表结构的数据库即可 table_schema yuncourt_ai AND -- articl…

蓝库云|制造业数字化转型为何转不动?资料处理很重要

数字化转型已经成为每个产业势在必行的课题&#xff0c;没有人会怀疑数字化技术与科技能解放的生产力能量&#xff0c;但为什么看似美好的愿景&#xff0c;实行起来却如此缓慢&#xff1f;蓝库云认为这是因为没有盖好「资料治理」的地基。 面对不断变化的法令规范要求&#xf…

<<Java开发环境配置>>7-Apache Tomcat安装教程环境变量配置IDEA配置

一.Apache Tomcat简介: Apache是普通服务器&#xff0c;本身只支持html即普通网页。不仅可以通过插件支持php,还可以与Tomcat连通(单向Apache连接Tomcat,就是说通过Apache可以访问Tomcat资源。反之不然)。Apache只支持静态网页&#xff0c;但像php,cgi,jsp等动态网页就需要Tomc…

无需端口映射,快解析外网访问U8C

U8C是用友针对成长型、创新型企业&#xff0c;提供企业级ERP整体解决方案&#xff0c;支持多组织业务协同、营销创新、智能财务、人力服务&#xff0c;构建产业链制造平台&#xff0c;实现企业互联网资源连接、共享、协同。 在系统实施过程中&#xff0c;多数企业想要自主掌握企…

分支管理方案

背景 在工作的过程中&#xff0c;git管理方式已经成为每一个项目开发的基础&#xff0c;每个项目的开发都离不开git管理方式。 但是在使用的过程中&#xff0c;由于对git分支管理方案的了解不深&#xff0c;导致会出现分支管理不明确的情况。 本文主要是做科普作用&#xff…

c++类与对象

1.类的定义 2.类的构造函数 1.函数名与类名相同 2.无返回值 3.对象实例化时编译器会自己调用构造函数 4.构造函数可以重载 5.没有显示定义时&#xff0c;编译器会自动调用一个无参的默认构造函数&#xff0c;一旦写显示则不生成 6.对于内置类型构造函数不做处理&#xff0c;对于…

麒麟 arm架构安装nginx

目录 1、下载nginx安装包并解压 在线安装&#xff1a; 离线安装&#xff1a; 上传nginx安装包&#xff08;下载地址&#xff1a;https://nginx.org/download/nginx-1.20.2.tar.gz&#xff09;到指定目录 2、安装系统相关依赖软件、组件包 1、上传或者下载对应的组件包 2、安…

SQL 中的窗口函数

SQL 中的窗口函数&#xff08;Window Functions&#xff09;是一种特殊的函数&#xff0c;它可以在查询结果的某个区间内执行计算&#xff0c;而不仅仅是对单个行进行计算。 以下是一些常用的窗口函数&#xff1a; 1、ROW_NUMBER() ROW_NUMBER() 函数可以给查询结果的每一行…

C语言常见关键字

写在前面 这个博客是结合C语言深度解剖这本书和我以前学的知识综合而成的,我希望可以更见详细的谈一下C语言的关键字,内容有点多,有错误还请斧正. 常见关键字 下面我们说下C语言的关键字,所谓的关键字是指具有特定功能的单词,我们可以使用关键字来帮助我们完成不同的事物.C语…

win系统电脑如何打开sketch?

2 个方法快速使用 Windows 系统打开 Sketch 文件&#xff1a;使用 Adobe XD 打开 Sketch 文件或者使用浏览器中就能做设计的即时设计直接打开 Sketch 文件。众所周知&#xff0c; Sketch 只能在 Mac 电脑上使用&#xff0c;因此只有借助 XD 这种能在 Windows 系统启动的软件工具…

LSTM原理解析

一、背景 前文讲了RNN的基本原理&#xff0c;可以发现RNN是一个比较简单的神经网络结构&#xff0c;虽然为文本和时间序列的建模提供了一个很好的思路&#xff0c;但是也有一定的局限性。最直观的就是使用了Tanh函数造成梯度消失的问题。 根据Tanh的性质&#xff0c;很容易出…

树莓派Bullseye版本更新

1、参考链接&#xff1a;树莓派11bullseye换源/Opencv安装_所罗门大帝的博客-CSDN博客 2、参考链接&#xff1a;https://blog.csdn.net/weixin_39589455/article/details/124514099 步骤1、使用镜像帮助&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/help/raspbian/ 步骤…