首页 > 其他分享 >现值计算,

现值计算,

时间:2024-09-17 20:48:36浏览次数:7  
标签:10 训练 输出 int 样例 现值 计算 科目

问题背景

西西艾弗岛荒野求生大赛还有 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

Data

样例 1 输出

1 1 1 1 1
10 9 8 9 1

Data

样例 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

Data

样例 2 输出

1 3 1 7 4 7 1

Data

样例 2 说明

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

demo.jpg

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

样例 3 输入

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

Data

样例 3 输出

1 11 21 31 41

Data

子任务

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

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

#include <bits/stdc++.h>
using namespace std;
const int N=110;
int t[N],p[N],em[N],lm[N]; 
int n,m;
bool st ;
int main()
{
	cin>>n>>m;
	for(int i=1;i<=m;i++)	cin>>p[i];
	for(int i=1;i<=m;i++)	cin>>t[i]; 
	
	for(int i=1;i<=m;i++)	
	{
		if(p[i]==0)//
		{
			em[i]=1;
			
		}
		else
		{
			em[i]=em[p[i]]+t[p[i]];
		}          
	}
	
	for(int i=1;i<=m;i++)	cout<<em[i]<<" ";
	cout<<endl;
	for(int i=1;i<=m;i++)
	{
//			lm[i]=n-t[i]+1;
//			if(lm[i]<em[i]||em[i]>n)
//			{
//				return 0;
//			}
			if(em[i]+t[i]-1>n)
				return 0;
			else
			{
				lm[i]=n-t[i]+1;
			}
			
		
	}
	for(int i=m;i;i--)
	{
		if(p[i]>0)
		{
			lm[p[i]]=min(lm[p[i]],lm[i]-t[p[i]]);
		}
	}
	for(int i=1;i<=m;i++)
	{
		cout<<lm[i]<<" ";
	}
	cout<<endl;
 } 

标签:10,训练,输出,int,样例,现值,计算,科目
From: https://blog.csdn.net/black_blank/article/details/142318734

相关文章

  • [计算机网络]HTTPS存在的问题
    1、证书信任链问题:当客户端验证服务器的证书时,需要一个可靠的证书颁发机构(CA)来建立信任链。然而,在实际应用中,存在证书信任链被破坏或被攻击者伪造的风险,这将对数据传输的安全性造成威胁。如果中间人攻击者能够伪造证书或破坏证书信任链,他们可能会冒充合法服务器并窃取或篡改数据。......
  • 【计算机毕设选题】2025计算机毕业设计选题,毕设100个热门选题推荐
    毕业设计作为计算机专业学生学习阶段的压轴之作,不仅是展示知识与技能的机会,更是对实际开发能力的全面考验。选题是整个毕业设计过程中至关重要的一环,一个合适且有挑战性的题目能大大提升毕业设计的质量。然而,很多学生在选题时面临着两个难题:一是题目过于常规,无法充分展现个......
  • 基于django+vue高校学科竞赛管理系统安全开发【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高校教育改革的深入和对学生综合素质要求的不断提高,学科竞赛作为培养学生创新能力、实践能力及团队协作精神的重要平台,其重要性日益凸......
  • 基于django+vue高校信息化迎新系统【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,高校教育管理正逐步向数字化、智能化转型。传统的迎新工作,涉及学生信息的录入、宿舍分配、学费缴纳、助学贷款申请......
  • 基于django+vue高校校医系统【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高等教育的普及与校园规模的不断扩大,高校师生的健康管理与医疗服务需求日益凸显。传统的高校校医系统往往面临信息孤岛、服务效率低下......
  • 基于django+vue高校宿舍信息管理系统【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高等教育的普及和高校规模的不断扩大,学生宿舍作为校园生活的重要组成部分,其管理面临着前所未有的挑战。传统的手工管理模式已难以适应......
  • Java 如何计算jar包的HASH哈希值
    在做授权系统的时候用到了一个小功能发出来分享一下。全部代码如下:importjava.io.File;importjava.io.FileInputStream;importjava.io.InputStream;importjava.net.URISyntaxException;importjava.security.MessageDigest;importjava.security.NoSuchAlgorithmExcepti......
  • 1.3 计算机网络的分类
    欢迎大家订阅【计算机网络】学习专栏,开启你的计算机网络学习之旅!文章目录前言一、按分布范围分类二、按传输技术分类三、按拓扑结构分类四、按使用者分类五、按传输介质分类前言计算机网络根据不同的标准可以被分为多种类型,本章从分布范围、传输技术、拓扑结构、......
  • 计算机组成原理-第二章-定点数的编码表示以及扩展
    2.1定点数和浮点数表示日常生活中整数的小数点固定在最右方,可省略不写;而实数的小数点位置不固定,计算机内部数据中每一位只能是0或1,不可能出现小数点,因此计算机表示小数点通过约定小数点的位置实现。小数点位置约定在固定位置的称为定点数小数点位置可浮动的称为浮点数 因......
  • 1 计算机系统
    计算机系统抽象层次6用户可执行程序5高级语言C++Java4汇编语言汇编代码3系统软件操作系统/库代码2机器指令集架构(ISA)1控制(控制怎么执行)微代码/硬连线0数字逻辑(执行)电路、门等LanguageProcessor:语言处理器语言处理器的两......