【题目描述】

某工厂收到了 n 个产品的订单,这 n 个产品分别在 A、B 两个车间加工,并且必须先在 A 车间加工后才可以到 B 车间加工。

某个产品 i 在 A,B 两车间加工的时间分别为Ai,Bi。怎样安排这 n 个产品的加工顺序,才能使总的加工时间最短。

这里所说的加工时间是指:从开始加工第一个产品到最后所有的产品都已在 A,B 两车间加工完毕的时间。

【输入】

第一行仅—个数据 n ,表示产品的数量;

接下来 n 个数据是表示这 n 个产品在 A 车间加工各自所要的时间;

最后的 n 个数据是表示这 n 个产品在 B 车间加工各自所要的时间。

【输出】

第一行一个数据,表示最少的加工时间;

第二行是一种最小加工时间的加工顺序。

【输入样例】

5
3 5 8 7 10
6 2 1 4 9

【输出样例】

34
1 5 4 2 3

【源程序】

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<utility>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<map>
#include<bitset>
#define EPS 1e-9
#define PI acos(-1.0)
#define INF 0x3f3f3f3f
#define LL long long
const int MOD = 1E9+7;
const int N = 100000+5;
const int dx[] = {-1,1,0,0,-1,-1,1,1};
const int dy[] = {0,0,-1,1,-1,1,-1,1};
using namespace std;
struct Node{int num;int id;
}m[N];
int a[N],b[N];
int res[N];
int main(){int n;scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]);for(int i=1;i<=n;i++)scanf("%d",&b[i]);for(int i=1;i<=n;i++){m[i].num=min(a[i],b[i]);m[i].id=i;}for(int i=1;i<=n-1;i++){for(int j=i+1;j<=n;j++){if(m[i].num>m[j].num){swap(m[i],m[j]);}}}int head=0,tail=n+1;for(int i=1;i<=n;i++){int num=m[i].num;int id=m[i].id;if(num==a[id])res[++head]=id;elseres[--tail]=id;}int timeA=0,timeB=0;for(int i=1;i<=n;i++){timeA+=a[res[i]];if(timeB<timeA)timeB=timeA;timeB+=b[res[i]];}printf("%d\n",timeB);for(int i=1;i<=n;i++)printf("%d ",res[i]);printf("\n");return 0;
}

加工生产调度(信息学奥赛一本通-T1425)相关推荐

  1. 信息学奥赛一本通_长乐一中老师演绎“奥赛传奇”

    董永建(右一)在课堂上. 台海网5月14日讯 据福州晚报报道,长乐一中有一位"传奇"老师--15年来,他辅导的学生在全国高中生信息学奥赛中获金牌3人次.银牌3人次.铜牌5人次:在全 ...

  2. 信息学奥赛一本通 提高篇 第5章 矩阵乘法

    例1 矩阵AXB 信息学奥赛一本通(C++版)在线评测系统 [矩阵乘法]矩阵A×B_Uletay-CSDN博客 矩阵乘法--矩阵A×B_vina的博客-CSDN博客 一本通1641[例 1]矩阵 A× ...

  3. 《信息学奥赛一本通提高篇》第6章 组合数学

    例1 计算系数(NOIP2011提高) 信息学奥赛一本通(C++版)在线评测系统 NOIP2011计算系数_nanhan27的博客-CSDN博客 「NOIP2011」 计算系数 - 组合数_TbYan ...

  4. 《信息学奥赛一本通 提高篇》

    提高篇 第一部分 基础算法 第1章 贪心算法 提高篇 第一部分 基础算法 第1章 贪心算法_青少年趣味编程-CSDN博客 提高篇 第一部分 基础算法 第1章 贪心算法 提高篇 第一部分 基础算法 第1 ...

  5. 信息学奥赛一本通 提高篇 第一部分 基础算法 第2章 二分与三分

    信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分 信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分_mrcrack的博客-CSDN博客_信息学奥赛一本通 ...

  6. 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题

    第1章   快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章  素数 第 3 章  约数 第 4 章  同余问题 第 5 章  矩阵乘法 第 6 章 ...

  7. 信息学奥赛一本通 1080:余数相同问题 2022.1.29 AC

    http://ybt.ssoier.cn:8088/show_source.php?runid=14630195 /* 信息学奥赛一本通 1080:余数相同问题 2022.1.29 AC http:/ ...

  8. 信息学奥赛一本通 提高篇 第六部分 数学基础 第1章 快速幂

    信息学奥赛一本通 提高篇 第六部分 数学基础 第1章 快速幂 https://blog.csdn.net/mrcrack/article/details/82846727 快速幂取模算法如何实现? h ...

  9. 【例1】 0/1背包《信息学奥赛一本通》【解法一】 02

    /* [例1] 0/1背包<信息学奥赛一本通>[解法一] 02 http://ybt.ssoier.cn:8088/problem_show.php?pid=1267 */ #includ ...

最新文章

  1. 使用Vant框架的组件van-pull-refresh搭配van-list和van-card完成上滑加载更多列表数据,下拉刷新当前列表数据(等同于翻页功能)
  2. 【FFmpeg】函数详解(一)
  3. 支付宝sdk 支付订单查询失败
  4. gdb工作原理(一)
  5. 五种计算机编程语言注定要衰落,牛逼的你怎么看呢???
  6. 2批量批量查询数据插入数据_Excel如何快速对数据批量查询,vlookup+match函数高效完成工作...
  7. 为什么对开发者很重要?
  8. iOS开发UI篇—Quartz2D使用(绘图路径)
  9. 前端学习(2363):数据缓存
  10. 拯救你的年终报告!巧用可视化图表秀出年终业绩
  11. 登山(信息学奥赛一本通-T1283)
  12. Docker创建自己的镜像库
  13. FMDB数据库框架的是使用
  14. Python计算今年第n个周m是几月几号
  15. Windows下MySQL的详细安装教程
  16. 25 个必须记住的SSH 命令
  17. WMS仓库管理软件操作流程是怎样
  18. win10显示隐藏文件_u盘内隐藏文件怎么显示 u盘内隐藏文件显示方法【详细步骤】...
  19. python获取当前计算机cpu数量
  20. 【Scikit-Learn 中文文档】处理文本数据 - scikit-learn 教程 | ApacheCN

热门文章

  1. STM32之RTC原理
  2. pc css框架,PC端框架—semantic ui
  3. springboot thymeleaf 引入jquery_超详细实战:SpringBoot高级之autoconfigure自动化配置
  4. 如果简历上真写了“会多线程”,那面试一般会被怎么问?
  5. 为什么Java 中1000==1000为false,而100==100为true?
  6. HTTPS 的 7 次握手以及 9 倍时延
  7. autopoi升级到4.0版本修改方法
  8. Mysql查询优化——中间表方法优化count()统计大数据量总数问题
  9. Java中super与this
  10. inittab文件剖析[CentOS 5.X](第二版)