P1248 加工生产调度
题目描述
某工厂收到了 n 个产品的订单,这 n 个产品分别在 A、B 两个车间加工,并且必须先在 A 车间加工后才可以到 B 车间加工。
某个产品 i 在 A、B 两车间加工的时间分别为Ai,Bi。怎样安排这 n 个产品的加工顺序,才能使总的加工时间最短。
这里所说的加工时间是指:从开始加工第一个产品到最后所有的产品都已在 A、B 两车间加工完毕的时间。
输入格式
第一行仅—个整数 n,表示产品的数量。
接下来一行 n 个整数是表示这 n 个产品在 A 车间加工各自所要的时间。
最后的 n 个整数是表示这 n 个产品在 B 车间加工各自所要的时间。
输出格式
第一行一个整数,表示最少的加工时间。
第二行是一种最小加工时间的加工顺序。
输入输出样例
输入 #1
5 3 5 8 7 10 6 2 1 4 9
输出 #1
34 1 5 4 2 3A机器上加工时间短的任务应优先,而在B机器上加工时间短的任务应该排在后面。
/** @Description: To iterate is human, to recurse divine.* @Autor: Recursion* @Date: 2022-03-17 11:02:14* @LastEditTime: 2022-03-17 11:41:28*/
#include<bits/stdc++.h>
using namespace std;
int n,ans[10000],ti[10000],a[10000],b[10000];
struct node{int minn;int order;
};
node t[10000];
bool cmp(node x,node y)
{if(x.minn<y.minn)return true;elsereturn false;
}int main()
{while(cin>>n){memset(ans,0,sizeof(ans));memset(a,0,sizeof(a));memset(b,0,sizeof(b));memset(ti,0,sizeof(ti));for(int i=1;i<=n;i++){t[i].order=i;cin>>a[i];}for(int i=1;i<=n;i++){cin>>b[i];t[i].minn=min(a[i],b[i]);}sort(t+1,t+1+n,cmp);int l=0,r=n+1;for(int i=1;i<=n;i++){//A时间短的往前面塞 if(t[i].minn==a[t[i].order]){l++;ans[l]=t[i].order;}else{r--;ans[r]=t[i].order;}}for(int i=1;i<=n;i++)ti[i]=ti[i-1]+a[ans[i]];int sum=ti[1]+b[ans[1]];for(int i=2;i<=n;i++)sum=max(ti[i],sum)+b[ans[i]];cout<<sum<<endl;// for(int i=1;i<=n;i++)// cout<<ans[i]<<" ";}
}
P1248 加工生产调度相关推荐
- LOJ洛谷P1248加工生产调度(贪心、Johnson 法则)
解析 和国王游戏一样的做法 容易写出cmp函数的依据: min(u.a,v.b)<min(u.b,v.a) 但是这个题的比较函数有一个取min的操作 这个东西会有一个问题:不满足不可比性的传递性 ...
- #10003. 「一本通 1.1 例 4」加工生产调度(贪心)
加工生产调度 题目描述 某工厂收到了n个产品的订单,这n个产品分别在A.B两个车间加工,并且必须先在A车间加工后才可以到B车间加工. 某个产品i在A.B两车间加工的时间分别为Ai.Bi.询问怎样安排这 ...
- 加工生产调度(贪心)
加工生产调度(贪心) 题目描述 某工厂收到了 n 个产品的订单,这 n 个产品分别在 A.B 两个车间加工,并且必须先在 A 车间加工后才可以到 B 车间加工. 某个产品 i 在 A,B 两车间加工的 ...
- 【C++】「一本通 1.1 例 4」加工生产调度
「一本通 1.1 例 4」加工生产调度 [来源] [题目描述] [输入格式] [输出格式] [输入样例] [输出样例] [数据范围] [解析] [代码] [来源] 一本通题库-1425 LibreOJ ...
- 【结论】加工生产调度
加工生产调度 题目描述 某工厂收到了n个产品的订单,这n个产品分别在A.B两个车间加工,并且必须先在A车间加工后才可以到B车间加工. 某个产品i在A.B两车间加工的时间分别为Ai.Bi.询问怎样安排这 ...
- 第1部分 基础算法(提高篇)--第1章 贪心算法1425:【例题4】加工生产调度
1425:[例题4]加工生产调度 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 2047 通过数: 529 [题目描述] 某工厂收到了 n 个产品的订单,这 n 个产品分别在 A ...
- 贪心算法(4.加工生产调度(做题思路分析))
1.流水作业调度问题(解题思路在下边) 加 ...
- 【贪心】加工生产调度【经典】
[贪心]加工生产调度 时间限制: 1 Sec 内存限制: 64 MB 提交: 61 解决: 24 [提交] [状态] [讨论版] [命题人:外部导入] 题目描述 有n个部件需在A.B机器上加工,每个工 ...
- 贪心算法训练(七)——加工生产调度(流水作业调度问题)
贪心算法训练(七)--加工生产调度(流水作业调度问题) 1. 问题描述 某工厂收到了 n 个产品的订单,这 n 个产品分别在 A.B 两个车间加工,并且必须先在 A 车间加工后才可以送到 B 车间.某 ...
最新文章
- 完美解决网站PNG图标在IE6下的透明显示
- 读《惰者集》有感:数学是一门需要敏锐感觉的学问
- HDU 1233 还是畅通工程。
- Smobiler实现扫描条码和拍照功能(开发日志八)
- 10 个 GitHub 上最火的程序员简历项目,2021 金三银四必备!
- 找工作笔试面试那些事儿(10)---SQL语句总结
- 【杆号识别】基于matlab铁路接触网系统杆号识别【含Matlab源码 1056期】
- usb路由器 php,无线路由器上的USB接口有什么用处?绝不是你想的那样简单
- Java版本新零售小程序saas商城全开源系统
- Java编程中常见异常有哪些?
- crontrigger java_Java触发器CronTrigger
- bmp 和JPG有什么区别
- 计算机word表格计算教程F9,word表格计算方法详解
- 如何办理杭州市民卡|非杭户籍人员个人申领流程
- 马克飞象的markdown语法和其它markdown语法的区别
- 手机如何当win10电脑摄像头使用
- java生成随机邮箱_Java随机生成姓名、邮箱、手机号码
- idea中src/main/resources目录下的applicationContext.xml文件访问src/main/webap目录下的配置文件
- 51nod-1631-小鲨鱼在51nod小学
- 北京某公司前端笔试题及其答案