热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

非单位时间任务安排Python

MAX1000deftakeSecond(elem):returnelem[1]defArrange(n,work):#按照每个任务的截止时间升序排列work.sort(key

题目介绍在这里插入图片描述

MAX=1000
def takeSecond(elem):return elem[1]
def Arrange(n,work):#按照每个任务的截止时间升序排列work.sort(key&#61;takeSecond)print("排序后&#xff1a;")for i in range(1,n&#43;1):print(work[i])deadline&#61;work[n][1]#最大截止时间#punished[i][j]为当截止时间为j时前i个任务的最小惩罚punish&#61;[[MAX]*(deadline&#43;1) for i in range(n&#43;1)]#初始化只有一个任务时for j in range(deadline&#43;1):#j表示整体的截止时间#若第一个任务的执行时间大于整体的截止时间则执行,最小惩罚置为0if work[1][0]<&#61; j:punish[1][j] &#61; 0#若第一个任务的执行时间小于整体的截止时间则执行,最小惩罚置为第一个任务的误时惩罚else:punish[1][j] &#61; work[1][2]if punish[1][deadline]&#61;&#61;0:count&#61;1#count表示执行的文件个数&#xff0c;若第一个文件执行了则为1for i in range(2,n&#43;1):for j in range(deadline&#43;1):#第i个任务不执行punish[i][j] &#61; punish[i-1][j] &#43; work[i][2]#time为第i个任务截止的最后时间time&#61;min(j,work[i][1])#若第i个任务可执行,且执行比不执行的最小惩罚小if(time >&#61; work[i][0] and punish[i][j]>punish[i-1][time-work[i][0]]):punish[i][j] &#61; punish[i-1][time-work[i][0]]#当截止时间为最大截止时间时,若第i个文件执行了则count加1if j&#61;&#61;deadline:count&#43;&#61;1print("任务安排表&#xff1a;")for i in range(1,n&#43;1):print(punish[i])return punish[n][deadline],count#从文件中读出数据
file_readpath &#61; &#39;input.txt&#39;
with open(file_readpath) as file:txt &#61; file.read()
txt&#61;txt.split(&#39;\n&#39;)
n&#61;eval(txt[0])
work&#61;[[0,0,0]]
for t in txt[1:]:t&#61;t.split()work.append([eval(t[0]),eval(t[1]),eval(t[2])])
punish,count&#61;Arrange(n,work)
print("最小惩罚为",punish)
print("执行文件个数为",count)#将结果存入文件output.txt
file_writepath &#61; &#39;output.txt&#39;
file&#61;open(file_writepath,"w")
file.write(str(punish)&#43;&#39;\n&#39;&#43;str(count))
file.close()

在这里插入图片描述运行结果&#xff1a;
在这里插入图片描述


推荐阅读
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • 本文整理了315道Python基础题目及答案,帮助读者检验学习成果。文章介绍了学习Python的途径、Python与其他编程语言的对比、解释型和编译型编程语言的简述、Python解释器的种类和特点、位和字节的关系、以及至少5个PEP8规范。对于想要检验自己学习成果的读者,这些题目将是一个不错的选择。请注意,答案在视频中,本文不提供答案。 ... [详细]
  • Python教学练习二Python1-12练习二一、判断季节用户输入月份,判断这个月是哪个季节?3,4,5月----春 ... [详细]
  • 本文介绍了Python对Excel文件的读取方法,包括模块的安装和使用。通过安装xlrd、xlwt、xlutils、pyExcelerator等模块,可以实现对Excel文件的读取和处理。具体的读取方法包括打开excel文件、抓取所有sheet的名称、定位到指定的表单等。本文提供了两种定位表单的方式,并给出了相应的代码示例。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 本文介绍了在iOS开发中使用UITextField实现字符限制的方法,包括利用代理方法和使用BNTextField-Limit库的实现策略。通过这些方法,开发者可以方便地限制UITextField的字符个数和输入规则。 ... [详细]
  • 本文介绍了一个编程问题,要求求解一个给定n阶方阵的鞍点个数。通过输入格式的描述,可以了解到输入的是一个n阶方阵,每个元素都是整数。通过输出格式的描述,可以了解到输出的是鞍点的个数。通过题目集全集传送门,可以了解到提供了两个函数is_line_max和is_rank_min,用于判断一个元素是否为鞍点。本文还提供了三个样例,分别展示了不同情况下的输入和输出。 ... [详细]
  • 本文介绍了在满足特定条件时如何在输入字段中使用默认值的方法和相应的代码。当输入字段填充100或更多的金额时,使用50作为默认值;当输入字段填充有-20或更多(负数)时,使用-10作为默认值。文章还提供了相关的JavaScript和Jquery代码,用于动态地根据条件使用默认值。 ... [详细]
  • 本文介绍了一个Python函数same_set,用于判断两个相等长度的数组是否包含相同的元素。函数会忽略元素的顺序和重复次数,如果两个数组包含相同的元素,则返回1,否则返回0。文章还提供了函数的具体实现代码和样例输入输出。 ... [详细]
  • Python基础知识:注释、输出和input交互
    本文介绍了Python基础知识,包括注释的使用、输出函数print的用法以及input函数的交互功能。其中涉及到字符串和整数的类型转换等内容。 ... [详细]
  • 在本教程中,我们将看到如何使用FLASK制作第一个用于机器学习模型的RESTAPI。我们将从创建机器学习模型开始。然后,我们将看到使用Flask创建AP ... [详细]
  • WPF之Binding初探
      初学wpf,经常被Binding搞晕,以下记录写Binding的基础。首先,盗用张图。这图形象的说明了Binding的机理。对于Binding,意思是数据绑定,基本用法是:1、 ... [详细]
  • 数学建模入门python绘制频率直方图
    文章目录例题数据处理绘图操作调用演示例题数据处理将以下的数据保存到磁盘上17275169551696417165167471716216867165521696216865 ... [详细]
  • mapreduce源码分析总结
    这篇文章总结的非常到位,故而转之一MapReduce概述MapReduce是一个用于大规模数据处理的分布式计算模型,它最初是由Google工程师设计并实现的ÿ ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有