作业调度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…

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

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

【LeetCode】链表精选12题

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

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、单选、多…

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解压到指定文件夹_在Python中压缩和解压文件

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

android bar布局,Android学习路线(十)如何将Action Bar叠放在你的布局上

默认状况下&#xff0c;action bar出如今activity窗口的顶部&#xff0c;略微减小了activity布局的总空间。若是你想隐藏或者显示action bar&#xff0c;在这堂用户体验的课程中&#xff0c;你能够经过调用htmlFigure 1. Gallerys action bar in overlay mode.android为了不在a…

geant4运行例子_Geant4--一次编译,运行多个Run,极大提升模拟效率

文|梁佐佐应唐光毅博士/后之约&#xff0c;对于Geant4模拟&#xff0c;我们看是否能解决这么一个问题&#xff1a;我现在想模拟探测器不同角度下的响应&#xff0c;每次模拟需要/run/beamOn 100&#xff0c; 可是我真的不想一遍一遍的去http://DetectorConstruction.cc中修改几…

echart实现3d地图_3D飞线效果——让线“飞”起来的秘密

在城市规划、统计、交通等行业&#xff0c;地图可视化已成为最直接也最吸引眼球的一种表达方式。例如人群迁徙、人口流动、OD出行、职住分析、客流来源等众多场景都需要用到飞线效果呈现。2D飞线效果图随着可视化技术的进一步发展&#xff0c;传统的2D飞线效果略显单调&#xf…

ad域管理与维护_在NAS SMB卷上使用VisualSVN Server维护代码库

VisualSVN Server[1] 是 Windows 平台上流行的 SVN 形式的代码管理工具。以下我们将介绍把 NAS SMB 卷作为 VisualSVN 代码库存储中心时会遇到的几个问题以及相应的解决方法。1. 安装错误的解决方法我们以 VisualSVN Server 3.3.1 版本为例&#xff0c;在安装 VisualSVN Server…

电脑文件夹可以分屏的软件_电脑上什么便签软件可以添加音频?

提及便签&#xff0c;很多人都会很自然地想到手机便签。这是因为随着智能手机和移动互联网的发展&#xff0c;现在很多手机上都有了系统自带的便签app。其实&#xff0c;除了手机便签外&#xff0c;还有电脑便签呢&#xff01;这不&#xff0c;Win7及其以上版本的电脑上还有系统…

jsp form提交到后台中文乱码_JSP与servlet之间的数据传递

【51】Jsp与Servlet之间的传值有两种&#xff0c;一种是Jsp传值给Sevlet&#xff0c;另一种是Servlet传值给Jsp&#xff1b;使用request、response对象完成传值&#xff0c;具体实现如下&#xff1a;Jsp与Servlet之间的传值有两种&#xff0c;一种是Jsp传值给Sevlet&#xff0c…

android jni 中jnienv,android JNI中JNIEnv類型和jobject類型的解釋

JNIEXPORT void JNICALL Java_com_jni_demo_JNIDemo_sayHello (JNIEnv *env, jobject obj){cout<}對於這個方法參數中的JNIEnv* env參數的解釋:JNIEnv類型實際上代表了Java環境&#xff0c;通過這個JNIEnv* 指針&#xff0c;就可以對Java端的代碼進行操作。例如&#xff0c;…

yang模型中rpc_领域驱动模型(DDD)设计讲解

一. 什么是领域驱动模型(DDD)&#xff1f;领域驱动模型一种设计思想&#xff0c;我们又称为DDD设计思想。是一种为了解决传统设计思想带来的维护困难&#xff0c;沟通困难和交互困难而产生的一种新的思想。也解决了在部分公司中&#xff0c;一个项目组就是一套服务&#xff0c;…

鸿蒙系统操作界面跟苹果很像,鸿蒙手机UI界面曝出!图标拟物化、操作逻辑近似苹果iOS13...

原标题&#xff1a;鸿蒙手机UI界面曝出&#xff01;图标拟物化、操作逻辑近似苹果iOS13​【IT爆料王-原创文章-具备版权效力】就在近日&#xff0c;笔者收到了网友的匿名私信&#xff0c;提供给笔者华为鸿蒙系统的UI界面截图&#xff0c;以及搭载鸿蒙系统的华为手机的曝光图片。…

crtsiii型无砟轨道板_无砟轨道裂缝破损怎么修补

随着高速铁路、客运专线、城市地铁的快速发展&#xff0c;无砟轨道轨道板&#xff08;道床板&#xff09;广泛应用&#xff0c;但施工中和运营期都发现轨道板混凝土存在不同程度的微细裂缝&#xff0c;对无砟轨道造成了一定的病害。高铁轨道板裂缝是不可避免的。为确保无砟轨道…

c调用python第三方库_Python使用ctypes模块调用DLL函数之C语言数组与numpy数组传递...

在Python语言中&#xff0c;可以使用ctypes模块调用其它如C语言编写的动态链接库DLL文件中的函数&#xff0c;在提高软件运行效率的同时&#xff0c;也可以充分利用目前市面上各种第三方的DLL库函数&#xff0c;以扩充Python软件的功能及应用领域&#xff0c;减少重复编写代码、…

妲己机器人怎么升级固件_台湾重金设计的3D妲己,亮瞎了

大家还记得前几天米醋分享的国内首档二次元选秀&#xff0c;遭网友疯狂吐槽&#xff1a;不知道怎么形容的丑&#xff01;当米醋看到了这档综艺的宣传海报时瞬间被这一批选手的颜值所吸引&#xff01;太魔幻了&#xff01;没成想看到3D人物效果时米醋却被这盛世丑颜丑到裂开&…

go语言通道插入0_Go语言入门必知教程-通道

Golang提供了一种称为通道的机制&#xff0c;用于在协程之间共享数据。当函数作为协程执行并发活动时&#xff0c;需要它们共享资源或数据&#xff0c;通道便充当协程之间的管道(管道)&#xff0c;提供一种确保同步交换数据的机制。需要在声明通道时指定数据类型&#xff0c;可…