当前位置: 首页 > news >正文

P1113 杂务【洛谷算法习题】

P1113 杂务

网页链接

P1113 杂务

题目描述

John 的农场在给奶牛挤奶前有很多杂务要完成,每一项杂务都需要一定的时间来完成它。比如:他们要将奶牛集合起来,将他们赶进牛棚,为奶牛清洗乳房以及一些其它工作。尽早将所有杂务完成是必要的,因为这样才有更多时间挤出更多的牛奶。

当然,有些杂务必须在另一些杂务完成的情况下才能进行。比如:只有将奶牛赶进牛棚才能开始为它清洗乳房,还有在未给奶牛清洗乳房之前不能挤奶。我们把这些工作称为完成本项工作的准备工作。至少有一项杂务不要求有准备工作,这个可以最早着手完成的工作,标记为杂务1 11

John 有需要完成的n nn个杂务的清单,并且这份清单是有一定顺序的,杂务k ( k > 1 ) k\ (k>1)k(k>1)的准备工作只可能在杂务1 11k − 1 k-1k1中。

写一个程序依次读入每个杂务的工作说明。计算出所有杂务都被完成的最短时间。当然互相没有关系的杂务可以同时工作,并且,你可以假定 John 的农场有足够多的工人来同时完成任意多项任务。

输入格式

1 11行,一个整数n ( 3 ≤ n ≤ 10,000 ) n\ (3 \le n \le 10{,}000)n(3n10,000),必须完成的杂务的数目;

2 22n + 1 n+1n+1行,每行有一些用空格隔开的整数,分别表示:

  • 工作序号(保证在输入文件中是从1 11n nn有序递增的);
  • 完成工作所需要的时间l e n ( 1 ≤ l e n ≤ 100 ) len\ (1 \le len \le 100)len(1len100)
  • 一些必须完成的准备工作,总数不超过100 100100个,由一个数字0 00结束。有些杂务没有需要准备的工作只描述一个单独的0 00

保证整个输入文件中不会出现多余的空格。

输出格式

一个整数,表示完成所有杂务所需的最短时间。

输入输出样例 #1

输入 #1

7 1 5 0 2 2 1 0 3 3 2 0 4 6 1 0 5 1 2 4 0 6 8 2 4 0 7 4 3 5 6 0

输出 #1

23

解题思路

本题核心是动态规划求解带依赖关系的并行任务最短耗时,属于经典关键路径问题。由于杂务编号严格递增,且所有前置任务都在当前任务之前,无需拓扑排序即可直接递推。定义ans[i]为完成第i项杂务的最早时间,其值为所有前置依赖任务的最大完成时间加上当前任务耗时。遍历每一项杂务,读取耗时与前置任务,计算当前任务完成时间,并维护全局最大完成时间。该最大值即为并行完成所有杂务的最短总时间,算法线性遍历,时间复杂度O(n),完美适配n≤10000的数据规模。

总结

核心逻辑:并行执行无冲突杂务,任务的最早完成时间由前置任务的最晚完成时间决定,全局最大值为总耗时。
关键操作:按任务顺序递推计算完成时间,实时更新全局最大耗时。
效率保障:依托任务依赖的有序性,直接线性计算,无冗余操作,高效简洁。

代码内容

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefunsignedlonglongull;typedefvector<vector<ll>>vt;typedefpair<ll,ll>pll;constll N=1e4+10;constll p=1e9+7;constll INF=1e18;constll M=5e3+10;ll ans[N],mx;intmain(){ll n,l,t;cin>>n;for(ll i=1;i<=n;++i){cin>>i>>l;ll tp=0;while(cin>>t&&t)tp=max(ans[t],tp);ans[i]=tp+l;mx=max(ans[i],mx);}cout<<mx<<endl;return0;}
http://www.jsqmd.com/news/593538/

相关文章:

  • 2026年亮化工程源头厂家哪家好,led线条灯/洗墙灯/亮化工程/泛光照明/led投光灯,亮化工程公司口碑推荐 - 品牌推荐师
  • flac3d7.0主应力方向导出与可视化:使用fish导出单元体数据并用matlab绘制塑性区图
  • Poppins字体完整指南:免费获取专业级多语言排版解决方案
  • FreeRTOS中断里用vTaskDelay()就死机?手把手教你STM32F407中断优先级与FromISR函数避坑
  • ECC 深度解析:怎么让 AI 代理变身你的金牌码农
  • P15447 「IXOI R1」柚社子
  • 旋转ReDet目标检测环境配置、旋转ReDet目标检测模型代跑训练、旋转ReDet目标检测模型改进创新旋转ReDet目标检测环境配置:Windows、Ubuntu、Centos、Macos等系统
  • 背完八股仍被挂?应届生面试真正卡人的是这些
  • 欧盟汽车网络安全法规R155与R156深度解读:合规与实施指南
  • 如何快速掌握DownKyi:从新手到专家的完整视频下载指南
  • CAN/CANFD数据记录仪在新能源汽车三电系统(VCU/BMS/MCU)中的关键应用与配置指南
  • Nav2实战:5分钟搞懂ROS2导航状态监控(从/navigate_to_pose反馈到状态机解析)
  • 第九届题目
  • 游戏盾不生效、攻击防不住?策略校验与节点切换教程
  • SEO 关键字和内容创作有什么关系
  • 从开源代码到飞行指令:深入QGroundControl(QGC)的MAVLink通信与模块化架构
  • 前端/全栈开发者看过来:用Cherry Studio + Node.js v20 + Yarn 4.6.0 搭建一个可调试的AI应用开发环境
  • 告别手写Testbench!用Vivado的AXI4-Stream VIP快速搭建验证环境(附SystemVerilog代码)
  • 双buck电路并联(VDCM控制+下垂控制) 变换器并联控制方案中,下垂控制是一种经典的控制策略
  • 避坑指南:Python处理CANoe的BLF文件时,如何解决通道匹配与ASC格式兼容性问题?
  • RFID芯片Datasheet保姆级解读指南:以NXP UCODE8为例,5分钟看懂关键参数
  • 如何通过open_agb_firm在3DS上实现原生GBA游戏体验
  • iOS/Android 集成游戏盾审核被拒?权限与合规配置修复
  • Markdown 驱动的系统提示词
  • 基于两相交错并联技术的Buck-Boost变换器仿真研究:采用双向DCDC及多环控制策略实现高...
  • 海康安防平台接口调试指南:从签名生成到Vue项目集成
  • 4步高效实现OneNote Markdown导出:从迁移到深度应用指南
  • TVA系统如何为企业筑牢盈利防线
  • 2026年优质知名的非标设备机架品牌推荐,精密非标设备机架厂家怎么选择睿意达市场认可度高 - 品牌推荐师