题目描述

某工厂收到了 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 加工生产调度相关推荐

  1. LOJ洛谷P1248加工生产调度(贪心、Johnson 法则)

    解析 和国王游戏一样的做法 容易写出cmp函数的依据: min(u.a,v.b)<min(u.b,v.a) 但是这个题的比较函数有一个取min的操作 这个东西会有一个问题:不满足不可比性的传递性 ...

  2. #10003. 「一本通 1.1 例 4」加工生产调度(贪心)

    加工生产调度 题目描述 某工厂收到了n个产品的订单,这n个产品分别在A.B两个车间加工,并且必须先在A车间加工后才可以到B车间加工. 某个产品i在A.B两车间加工的时间分别为Ai.Bi.询问怎样安排这 ...

  3. 加工生产调度(贪心)

    加工生产调度(贪心) 题目描述 某工厂收到了 n 个产品的订单,这 n 个产品分别在 A.B 两个车间加工,并且必须先在 A 车间加工后才可以到 B 车间加工. 某个产品 i 在 A,B 两车间加工的 ...

  4. 【C++】「一本通 1.1 例 4」加工生产调度

    「一本通 1.1 例 4」加工生产调度 [来源] [题目描述] [输入格式] [输出格式] [输入样例] [输出样例] [数据范围] [解析] [代码] [来源] 一本通题库-1425 LibreOJ ...

  5. 【结论】加工生产调度

    加工生产调度 题目描述 某工厂收到了n个产品的订单,这n个产品分别在A.B两个车间加工,并且必须先在A车间加工后才可以到B车间加工. 某个产品i在A.B两车间加工的时间分别为Ai.Bi.询问怎样安排这 ...

  6. 第1部分 基础算法(提高篇)--第1章 贪心算法1425:【例题4】加工生产调度

    1425:[例题4]加工生产调度 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 2047 通过数: 529 [题目描述] 某工厂收到了 n 个产品的订单,这 n 个产品分别在 A ...

  7. 贪心算法(4.加工生产调度(做题思路分析))

    1.流水作业调度问题(解题思路在下边)                                                                                加 ...

  8. 【贪心】加工生产调度【经典】

    [贪心]加工生产调度 时间限制: 1 Sec 内存限制: 64 MB 提交: 61 解决: 24 [提交] [状态] [讨论版] [命题人:外部导入] 题目描述 有n个部件需在A.B机器上加工,每个工 ...

  9. 贪心算法训练(七)——加工生产调度(流水作业调度问题)

    贪心算法训练(七)--加工生产调度(流水作业调度问题) 1. 问题描述 某工厂收到了 n 个产品的订单,这 n 个产品分别在 A.B 两个车间加工,并且必须先在 A 车间加工后才可以送到 B 车间.某 ...

最新文章

  1. 完美解决网站PNG图标在IE6下的透明显示
  2. 读《惰者集》有感:数学是一门需要敏锐感觉的学问
  3. HDU 1233 还是畅通工程。
  4. Smobiler实现扫描条码和拍照功能(开发日志八)
  5. 10 个 GitHub 上最火的程序员简历项目,2021 金三银四必备!
  6. 找工作笔试面试那些事儿(10)---SQL语句总结
  7. 【杆号识别】基于matlab铁路接触网系统杆号识别【含Matlab源码 1056期】
  8. usb路由器 php,无线路由器上的USB接口有什么用处?绝不是你想的那样简单
  9. Java版本新零售小程序saas商城全开源系统
  10. Java编程中常见异常有哪些?
  11. crontrigger java_Java触发器CronTrigger
  12. bmp 和JPG有什么区别
  13. 计算机word表格计算教程F9,word表格计算方法详解
  14. 如何办理杭州市民卡|非杭户籍人员个人申领流程
  15. 马克飞象的markdown语法和其它markdown语法的区别
  16. 手机如何当win10电脑摄像头使用
  17. java生成随机邮箱_Java随机生成姓名、邮箱、手机号码
  18. idea中src/main/resources目录下的applicationContext.xml文件访问src/main/webap目录下的配置文件
  19. 51nod-1631-小鲨鱼在51nod小学
  20. 北京某公司前端笔试题及其答案

热门文章

  1. 第五组postmortem报告
  2. 一个浙江富商总结出的23条经典的经商+做人法则!!
  3. 龙山区计算机学校,龙山县城区中小学招生报名系统操作指南
  4. Swift学习之每日一tip (5)@autoclosure
  5. 隔离运放AMC1311的使用
  6. java左-右移运算符
  7. AtCoder算法竞技平台简介
  8. Spark: Data Skew 优化
  9. 在速变的区块链行业,如何高效地学习与思考? |链捕手
  10. Kindred AI要让人戴VR眼镜训练机器人 使其变聪明