首页 > 其他分享 >7-11 关键活动

7-11 关键活动

时间:2022-08-15 21:57:38浏览次数:66  
标签:11 交接点 任务调度 输出 任务 关键 完成 编号 活动

假定一个工程项目由一组子任务构成,子任务之间有的可以并行执行,有的必须在完成了其它一些子任务后才能执行。“任务调度”包括一组子任务、以及每个子任务可以执行所依赖的子任务集。

比如完成一个专业的所有课程学习和毕业设计可以看成一个本科生要完成的一项工程,各门课程可以看成是子任务。有些课程可以同时开设,比如英语和C程序设计,它们没有必须先修哪门的约束;有些课程则不可以同时开设,因为它们有先后的依赖关系,比如C程序设计和数据结构两门课,必须先学习前者。

但是需要注意的是,对一组子任务,并不是任意的任务调度都是一个可行的方案。比如方案中存在“子任务A依赖于子任务B,子任务B依赖于子任务C,子任务C又依赖于子任务A”,那么这三个任务哪个都不能先执行,这就是一个不可行的方案。

任务调度问题中,如果还给出了完成每个子任务需要的时间,则我们可以算出完成整个工程需要的最短时间。在这些子任务中,有些任务即使推迟几天完成,也不会影响全局的工期;但是有些任务必须准时完成,否则整个项目的工期就要因此延误,这种任务就叫“关键活动”。

请编写程序判定一个给定的工程项目的任务调度是否可行;如果该调度方案可行,则计算完成整个工程项目需要的最短时间,并输出所有的关键活动。

输入格式:

输入第1行给出两个正整数N(≤100)和M,其中N是任务交接点(即衔接相互依赖的两个子任务的节点,例如:若任务2要在任务1完成后才开始,则两任务之间必有一个交接点)的数量。交接点按1~N编号,M是子任务的数量,依次编号为1~M。随后M行,每行给出了3个正整数,分别是该任务开始和完成涉及的交接点编号以及该任务所需的时间,整数间用空格分隔。

输出格式:

如果任务调度不可行,则输出0;否则第1行输出完成整个工程项目需要的时间,第2行开始输出所有关键活动,每个关键活动占一行,按格式“V->W”输出,其中V和W为该任务开始和完成涉及的交接点编号。关键活动输出的顺序规则是:任务开始的交接点编号小者优先,起点编号相同时,与输入时任务的顺序相反。

输入样例:

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

 

输出样例:

17
1->2
2->4
4->6
6->7

 

代码:

 

 

 

总结:

 

标签:11,交接点,任务调度,输出,任务,关键,完成,编号,活动
From: https://www.cnblogs.com/yccy/p/16589776.html

相关文章

  • Linux 0.11学习
    学习链接:sunym1993/flash-linux0.11-talk:你管这破玩意叫操作系统源码—像小说一样品读Linux0.11核心代码(github.com)1.从开机到运行main.c的过程在主板上写死......
  • 11. azkaban将调度结果发送到邮箱
    修改配置文件[root@node1conf]#pwd/opt/app/azkaban-3.85.0/web-server/conf[root@node1conf]#lsazkaban.propertiesazkaban-users.xmlglobal.propertieslo......
  • k8s集群不可用:The connection to the server 192.168.117.161:6443 was refused - did
    虚拟机非正常关机后,k8s集群不可用获取节点,报如下错,kubectlgetnode 查看env:env|grep-ikubernetes 查看docker状态:systemctlstatusdocker 查看kubelet......
  • 人非圣贤孰能无过,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang错误处理机制EP11
    人非圣贤,孰能无过,有则改之,无则加勉。在编程语言层面,错误处理方式大体上有两大流派,分别是以Python为代表的异常捕获机制(try....catch);以及以Golang为代表的错误返回机制(r......
  • HC32L110 在 Ubuntu 下使用 J-Link 烧录
    目录HC32L110(一)HC32L110芯片介绍和Win10下的烧录HC32L110(二)HC32L110在Ubuntu下的烧录HC32L110在Ubuntu下使用J-Link烧录以下说明在Ubuntu下如何配置HC......
  • mybatis 11: 通过map获取入参和返回值
    1.通过指定参数位置获取作用如果入参是多个且实体类无法封装所有的入参,可以通过指定参数位置进行传参,方便对多个参数进行获取用法接口//指定参数位置List......
  • P3272 [SCOI2011]地板
    [SCOI2011]地板LuoguP3272题目描述lxhgww的小名叫“小L”,这是因为他总是很喜欢L型的东西。小L家的客厅是一个\(r\timesc\)的矩形,现在他想用L型的地板来铺......
  • CSP202112-4 磁盘文件操作
        第一眼,嗯,线段树裸题。开写,交,发现空间炸了,遂离散化。再交,发现在操作0的时候有可能遇到离散化中没出现过的点(即给定数据外的点),因为要二分右端点。怎么办呢?大胆观......
  • luoguP3521 [POI2011]ROT-Tree Rotations【线段树】
    你要写热,就不能只写热。要写酷暑,写骄阳,写他人耳闻便生恐的炙烤和炎灼。要写白日出门一刻便肤色黝黑,背心透彻。写求雨心切,写出行伞遮。写夜晚不停的风扇和蝉聒。写鸡......
  • 活动安排
    题目描述设有n个活动的集合E={1,2,..,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起......