作业调度C语言编写,【作业调度方案】 (C语言代码)

解题思路:

4ed5a55e40a560e0ba93b6d0773ed5fe.png

如图所示,对于第一组样例输入,按照总工序提供的顺序,对于每个工件的工序从小到大,每次寻找有空闲机器的“空档”插入,就能让总加工时间最短。

注意事项:

按照约定,最短方案有且只有一种。

参考代码:#include

int w[21];                                    //当前安排的工件处于几号工序

int u[501];                                   //安排几号工件进入总工序

int lt[21];                                   //当前安排的工件几时结束

int t[21][21];                                //每个工件的每个工序的加工时间

int d[21][21];                                //每个工件的每个工序所使用的机器号

int c[21][501];                               //每个机器在工件完成后某时间段内是否被占用

int main(){

int max(int,int);

int i,j,k,m,n,ans=0,s=0;

scanf("%d%d",&m,&n);

for(i=1;i<=m*n;i++) scanf("%d",&u[i]);    //输入总工序

for(i=1;i<=n;i++)

for(j=1;j<=m;j++)

scanf("%d",&d[i][j]);             //输入第1个工件第j个工序所使用的机器号

for(i=1;i<=n;i++)

for(j=1;j<=m;j++)

scanf("%d",&t[i][j]);             //输入第i个工件第j个工序的加工时间

for(i=1;i<=n*m;i++){

w[u[i]]++;                            //总工序中第i个工件处于几号工序

for(j=lt[u[i]]+1;;j++){               //总工序中工件u[i]当前工序若能完成的时间段

if(c[d[u[i]][w[u[i]]]][j]==0) s++;//工件u[i]在当前工序所使用的机器未被占用时长

else s=0;

if(s==t[u[i]][w[u[i]]]){          //工件u[i]在当前工序的加工时间

for(k=j-s+1;k<=j;k++)         //在j之前的这段时间s

c[d[u[i]][w[u[i]]]][k]=1; //安排工件u[i]在当前工序占用相应的机器

lt[u[i]]=j;                   //工件u[i]的完成时间

s=0;

break;

}

}

}

for(i=1;i<=n;i++)

ans=max(ans,lt[i]);                   //工序中最后一个工件的完成时间

printf("%d",ans);

return 0;

}

int max(int a,int b){

return a>b?a:b;

}

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

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

相关文章

python判断能否组成三角形_python三角形判定怎么做

python三角形判定怎么做&#xff1f;下面给大家带来具体的例子&#xff1a; 相关推荐&#xff1a;《Python视频教程》 例子&#xff1a;a int(input("The length of the side a ")) b int(input("The length of the side b ")) c int(input("The…

文件的记录c语言程序,c语言程序学生籍贯信息记录簿设计.docx

c 语言程序学生籍贯信息记录簿设计学生籍贯信息记录簿课程设计报告书班 级: 方 0909-1 学 号:姓 名: 苑 小 叶 指导教师 : 康 亚 男 石家庄铁道大学四方学院2010年 07月 14日1课程设计报告内容1. 选择题目题目: 学生籍贯信息记录簿设计 2. 内容摘要摘要:学生籍贯信息管理系统是…

如何修改linux的java路径_修改桌面文件默认存储位置的正确方式及注意事项

之前写了篇关于如何修改桌面文件默认存储位置&#xff0c;许多人在修改后出现各种问题&#xff0c;今天重新来讲解一下关于修改桌面文件默认存储位置的正确方式及注意事项。第一步、在E盘下创建一个文件夹&#xff0c;随便取个名字&#xff0c;或者默认为【新建文件夹】&#x…

secp256r1 c语言程序,rust代码阅读 之 libsecp256k1 (1)

在密码学的运算中, 数字通常是非常大的. 以 ECDSA 椭圆曲线为例, 私钥是 256 位的.所以在 libsecp256k1 这个库里, 定义了计算的元素 Field. 其中 n 为 320 位.pub struct Field {pub(crate) n: [u32; 10],pub(crate) magnitude: u32,pub(crate) normalized: bool,}为其实现加法…

python位运算符_详细介绍Python语言中的按位运算符

按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下&#xff1a; 按位与 ( bitwise and of x and y ) & 举例&#xff1a; 5&3 1 解释&#xff1a; 101 11 相同位仅为个位1 &#xff0c;故结果为 1 按位或 ( bitwise or of x and y ) | 举例&…

c语言代码测试电脑性能,【图片】今天写几个性能测试,为什么C语言跑得这么慢呢??【c语言吧】_百度贴吧...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼易言版本……跑100000万成绩不如PHP。。。。.版本 2.程序集 程序集1.子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行.局部变量 参数, 文本型, , "0".局部变量 to, 整数型.局部变量 fr, 整数型.局部变量 n,…

python find函数 和index的区别_使用带有find和index的map时Python2和Python3之间的区别...

给定一个模式和一个字符串str,找到str是否遵循相同的模式. 以下是完全匹配,使得在模式中的字母和str中的非空字之间存在双射. 例子&#xff1a; pattern “abba”,str “dog cat cat dog”应该返回true;狗是一只猫,猫是b,而这些词形成了abba模式. pattern “abba”,str “dog c…

c语言3368题目,电大《C语言程序设计课程》期末考试复习资料

0993C 评议程序设计A 第 1 页 共 31 页C 语言程序设计课程期末复习练习一、单选题 1&#xff0e;在每个C 语言程序中都必须包含有这样一个函数&#xff0c;该函数的函数名为( )。A. main 2&#xff0e;每个C 语言程序文件的编译错误分为( )类。B. 2 3. 字符串"ab12\n"…

【LeetCode】链表精选12题

目录 快慢指针&#xff1a; 1. 相交链表&#xff08;简单&#xff09; 2. 环形链表&#xff08;简单&#xff09; 3. 快乐数&#xff08;简单&#xff09; 4. 环形链表 II&#xff08;中等&#xff09; 5. 删除链表的倒数第 N 个节点&#xff08;中等&#xff09; 递归迭…

python类的属性和对象属性_python 类属性、对象属性-阿里云开发者社区

类的普通属性:  dir(Myclass), 返回一个key列表&#xff1b; Myclass.__dir__,返回一个字典&#xff1b; 1、类的数据属性&#xff1b; 2、类的方法&#xff1b; 类的特殊属性&#xff1a; 1、Myclass.__name__  类的名字 2、Myclass.__doc__   类的文档字符串 3、Mycla…

击鼓传花c语言编程题,c语言-第5章 循环程序设计.ppt

《c语言-第5章 循环程序设计.ppt》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《c语言-第5章 循环程序设计.ppt(83页珍藏版)》请在人人文库网上搜索。1、第5章 循环程序设计,管理学院 电子商务系,2,第5章 循环程序设计,5.1 概述 5.2 while和do while循环 5.3 for循环…

python快速检测视频跳过帧_python实现视频分帧效果

本文实例为大家分享了python实现视频分帧的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下 import cv2 vidcap cv2.VideoCapture(005.avi) success,image vidcap.read() count 0 success True while success: success,image vidcap.read() cv2.imwrite("fr…

最大素数c语言,for语句计算输出10000以内最大素数怎么搞最简单??各位大神们...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include #include int* pt NULL; // primes_tableint pt_size 0; // primes_table 数量大小int init_primes_table(void){FILE* pFile;pFile fopen("primes_table.bin", "rb");if (pFile NULL) {fputs(&q…

python去重保留唯一一个值_Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)...

摘要 在进行数据分析时&#xff0c;我们经常需要对DataFrame去重&#xff0c;但有时候也会需要只保留重复值。 这里就简单的介绍一下对于DataFrame去重和取重复值的操作。 创建DataFrame 这里首先创建一个包含一行重复值的DataFrame。2.DataFrame去重&#xff0c;可以选择是否保…

自定义日历控android,Android 一个日历控件的实现小记

先看几张动态的效果图吧&#xff01;这里主要记录一下在编写日历控件过程中一些主要的点&#xff1a;一、主要功能1、支持农历、节气、常用节假日2、日期范围设置&#xff0c;默认支持的最大日期范围[1900.1~2049.12]3、禁用日期范围设置4、初始化选中单个或多个日期5、单选、多…

python先返回再处理_python xpath解析返回对象怎么处理

3 4 5 text 6 7 ... 8 ... 9 ......10 11 12 ...13 ...14 ......15 16 17 18

android文件读取工具类,Android 下读取Assets Properties操作封装工具类

Android 下读取Assets Properties操作封装工具类发布时间&#xff1a;2018-06-03作者&#xff1a;laosun阅读(2081)为了方便使用&#xff0c;首先创建BaseApplication类&#xff0c;如下所示&#xff1a;import android.app.Application;import android.content.Context;/*** C…

python粘性拓展_如何将tkinter小部件置于粘性框架中

在google中使用“如何使tkinter网格扩展”&#xff0c;我遇到了这个问题。 引用布莱恩奥克利的话Rows and columns have "weight" which describes how they grow or shrink to fill extra space >in the master. By default a row or column has a weight of zer…

android 固件 编辑器,RK3288编译 Android 5.1 固件

1 准备工作编译 Android 对机器的配置要求较高&#xff1a;64 位 CPU16GB 物理内存交换内存30GB 空闲的磁盘空间用于构建&#xff0c;源码树另外占用大约 25GBUbuntu 14.04 操作系统八核i7&#xff0c;编译完成需要一个半小时安装 JDK 7:sudo apt-get install openjdk-7-jdkUbu…

python解压到指定文件夹_在Python中压缩和解压文件

Python部落(python.freelycode.com)组织翻译&#xff0c;禁止转载&#xff0c;欢迎转发。 如果你已经使用计算机一段时间&#xff0c;你可能遇到了.zip扩展名的文件。它们是可以保存许多其他文件&#xff0c;文件夹和子文件夹的压缩内容的特殊文件。这种类型的文件在使用互联网…