作业调度C语言编写,【作业调度方案】 (C语言代码)
解题思路:
如图所示,对于第一组样例输入,按照总工序提供的顺序,对于每个工件的工序从小到大,每次寻找有空闲机器的“空档”插入,就能让总加工时间最短。
注意事项:
按照约定,最短方案有且只有一种。
参考代码:#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;
}
作业调度C语言编写,【作业调度方案】 (C语言代码)相关推荐
- (61)FPGA面试题-使用Verilog语言编写异步复位同步释放代码
1.1 FPGA面试题-使用Verilog语言编写异步复位同步释放代码 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-使用Verilog语言编写异步复位 ...
- HTML语言编写的树形导航栏代码
求HTML语言编写的树形导航栏代码 代码: <HTML> <HEAD> <TITLE>树形菜单</TITLE> <STYLE type=" ...
- 用C语言编写万年历6,C语言编写万年历
<C语言编写万年历>由会员分享,可在线阅读,更多相关<C语言编写万年历(8页珍藏版)>请在人人文库网上搜索. 1.C语言编写万年历 [要求]:1 程序运行后,首先在屏幕上显示主 ...
- c语言编写系统服务程序,C语言Windows服务程序编写-ServiceMain
C语言编写的Windows服务程序,可以类比Linux/Unix环境下的daemon进程. 一下是VS2010环境下的demo: // windows_service.cpp : 定义控制台应用程序的 ...
- c语言编写modbus程序,C语言编写modbus协议
<C语言编写modbus协议>由会员分享,可在线阅读,更多相关<C语言编写modbus协议(23页珍藏版)>请在人人文库网上搜索. 1.include / 字地址 0 - 25 ...
- c语言编写计算机软件,基于C语言的计算机软件编程分析.doc
基于C语言的计算机软件编程分析.doc 基于C语言的计算机软件编程分析 摘要:C语言是一种重要的编程语言,在当今IT业的运用十分广泛.使用C语言来编写的程序简单.直接.准确,极大地推动了计算机软件的更 ...
- 用c语言编写字母循环,C语言输入循环字母
广告 提供50多种云计算产品,包括云服务器和云. 创建一站式云产品试用服务,以帮助开发人员和企业以零门槛进入云环境. 是否有一种简单的方法来调用c脚本,以查看用户是否输入了英文字母中的字母?我在想这样 ...
- c语言编写五子棋报告,c语言报告五子棋.pdf
C 语言课程设计报告 c 题目: 简单的 五子棋 设计者: 方阳 专业班级: 软件工程1303班 学号: 311309060324 指导老师: 刘洁 所属系部: 计算机学院 2014年6月25 日 河 ...
- c语言编写音乐播放器完整代码(mciSendString函数的使用方法,第一次使用Visual Studio 2019的详细步骤)
本文会尽量让和笔者一样只有一点点可怜的c语言基础的小白看懂,并写出自己的音乐播放器. 笔者使用的编译器是Visual Studio 2019,直接在官网下载就行了.下面是Visual Studio 2 ...
- 用c语言编写实心菱形,C语言编写内置菱形的程序
C语言编写内置菱形的程序 最近迷上了用C语言编写图形的输出程序,有矩形的.三角形.等腰三角形,平行四边形.菱形.沙漏形.今天尝试着将菱形内置到矩形中,结果成功了,下面将快乐分享给大家,也希望广大C程序 ...
最新文章
- ROS上同时预览depth,IR,RGB 调试记录
- 走进科学-小菌株大作为—枯草芽孢杆菌替代畜牧业抗生素添加
- hive同时不包含一些字符串_Hive中常用的字符串操作
- 未来货运:无人驾驶技术和卡车司机如何配合?
- 十二 手游开发神器 cocos2d-x editor 之游戏暂停悬浮层
- excel换行按什么键_电脑结束任务按什么键
- B - Friends
- PAT 1082. 射击比赛 (20) - 乙级
- Mvc5 EF6 CodeFirst Mysql (一) 新建一个Mvc项目并使用EF连接到Mysql数据库
- MFC学习笔记(1)
- 能力的变迁:能力包括哪些方面
- SSM(Spring+SpringMVC+MyBatis):图书管理系统附有GIF动图,博主可免费答疑
- ansys选择一个面上所有节点_ansys中如何选择面及其上的节点
- matlab中的sprintf函数,Matlab中disp和sprintf函数使用方法和区别介绍
- 境外显示手机无服务器,手机卡在国外无服务怎么办
- 项目 cg day09
- 判断当前打开的是手机还是pc浏览器还是微信浏览器
- 使用VProtect给自己开发的软件加密
- 反脆弱性:为什么工作越稳定,人生越脆弱?
- Elasticsearch中object类型与nested类型之间的区别
热门文章
- 详解GPU技术关键参数和应用场景
- 面试鹅厂,我三面被虐的体无完肤……
- K8S精华问答 | 如何监控部署在Docker容器上的应用程序?
- 2017 JavaScript 调查报告概述
- rocketmq怎么保证数据不会重复_RocketMQ保证信息有序性和防止重复
- 使用dubbo后尽量不用要@Service可能引起冲突
- java生成html表格数据_使用Java将表格数据导出成Excel格式
- 乘法原理的例题和答案_吃透高考数学17个必考题型,基础再差也能考130!(内附解题技巧+例题解析)...
- 在vm中安装linux虚拟机,如何在vm虚拟机中安装linux
- linux 网络dma驱动,S3C2410的Linux下DMA驱动程序开发