题目链接

这个题可以贪心

我们首先想:对于所有产品,我们大致可以将其分为三类:

  ①.在A车间的时间要比B车间长。

  ②.两者一样。

  ③.在B车间的时间要比A车间长。

对于这三大类,怎么安排顺序?

可以看出,①类是消耗B车间任务,③类是给B车间增加任务。

我们想,要想时间最快,必须要尽可能的让AB两车间没有空闲的工作。如果我们将①放在了开头,而③放在了结尾,那必然会导致开始时B工作的时间断断续续,最后等A工作完了,B还剩下一大堆任务。

所以我们要尽可能的将③放在开始,①放在结尾,②安排在中间就可以(没有什么影响)。

三大类排好顺序后,我们再想每一类内部之间的顺序:

  对于①:放在结尾执行,到最后必然A全部执行完毕,B还剩一点没执行(因为A最后执行的产品刚刚归入B类),那我们此时所消耗的时间就是最后产品的B车间时间,当然是越小越好,所以③类要按照B从大到小排。

  对于②:好像既然放在了中间,就无所谓了。

  对于③:同①理,放在开始执行,一开始必然第一个任务执行A时,B此时空着,那我们此时所消耗的时间就是开始产品的A车间时间,当然是越小越好,所以①类要按照A从小到大排。

然后从头到尾模拟一遍就行了。

代码:

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
using namespace std;
int n;
struct qwq{
int A;
int B;
int C;//看看这个零件属于哪一类
int id;//此零件下标
}e[];
int cmp(qwq &a,qwq &b){
if(a.C!=b.C)
return a.C>b.C;
else if(a.C==)
return a.A<b.A;
else if(a.C==-)
return a.B>b.B;
else
return a.A<b.A;
}
inline int read(){
int x=;
char ch=getchar();
while(ch<''||ch>'')
ch=getchar();
while(ch>=''&&ch<=''){
x=(x<<)+(x<<)+(ch^);
ch=getchar();
}
return x;
}
int Time_c,cha;
int main(){
n=read();
for(int i=;i<=n;i++)
e[i].A=read(),e[i].id=i;
for(int i=;i<=n;i++){
e[i].B=read();
e[i].C=((e[i].B-e[i].A) >= ? ((e[i].B-e[i].A) > ? : ) : -);//三目运算符给任务分类
}
sort(e+,e+n+,cmp);
for(int i=;i<=n;i++){//模拟
Time_c+=e[i].A;
cha=max(cha-e[i].A,);
cha+=e[i].B;
}
cout<<Time_c+cha<<endl;
for(int i=;i<=n;i++)
printf("%d ",e[i].id);
return ;
}

Luogu [P1248] 加工生产调度的更多相关文章

  1. 【流水调度问题】【邻项交换对比】【Johnson法则】洛谷P1080国王游戏/P1248加工生产调度/P2123皇后游戏/P1541爬山

    前提说明,因为我比较菜,关于理论性的证明大部分是搬来其他大佬的,相应地方有注明. 我自己写的部分换颜色来便于区分. 邻项交换对比是求一定条件下的最优排序的思想(个人理解).这部分最近做了一些题,就一起 ...

  2. 洛谷P1248 加工生产调度

    流水作业调度问题 有\(N\)个作业要在两台机器\(M_1\)和\(M_2\)组成的流水线上完成加工.每个作业\(i\)都必须先花时间\(a_i\)在\(M_1\)上加工,然后花时间\(b_i\)在\ ...

  3. 【题解/模板】P1248 加工生产调度(贪心)

    [题解/模板]P1248 加工生产调度(贪心) 分析: \(A\)流水线的时间是确定的,所以现在就是要让\(b\)的时间尽量短 \(tB > tA\),除非所有东西都不需要\(b\).(t指结束 ...

  4. 洛谷P1248 加工生产调度 贪心

    正解:贪心 解题报告: 传送门$QwQ$ $umm$直接看可能比较难想,可以先考虑另一个题? 有$n$个小怪,每打一只小怪会扣$a_i$的血,打完之后会回升$b_i$的血,问至少要多少血量才能使全程血 ...

  5. 「一本通 1.1 例 4」加工生产调度(贪心算法)(luogu P1248)题解

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

  6. codevs 3008 加工生产调度[贪心]

    3008 加工生产调度  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 某工厂收到了n个产品的订 ...

  7. 加工生产调度(prod)

    加工生产调度(prod) 题目描述 有n个部件需在A.B机器上加工,每个工件都必须经过先A后B两道工序. 已知:部件i在A.B机器上的加工时间分别为ai,bi. 问:如何安排n个工件的加工顺序,才能使 ...

  8. 【洛谷P1248】加工生产调度

    题目大意:某工厂收到了n个产品的订单,这n个产品分别在A.B两个车间加工,并且必须先在A车间加工后才可以到B车间加工.某个产品i在A.B两车间加工的时间分别为Ai.Bi.怎样安排这n个产品的加工顺序, ...

  9. 题解 P1248 【加工生产调度】

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

随机推荐

  1. sap smartform 打印乱码问题

    在smartforms打印的时候会遇到中英文结合的form 有时候系统会处理时出现乱码   有时不会  不知道是系统的事情还是配置的事情 现在是我的解决办法  因为是中英文结合 在中文环境建立form ...

  2. 从技术 Leader 的招聘需求看,如何转岗为当前紧缺的大数据相关人才?

    前段时间,跟候选人聊天的时候,一个有多年工作经验的资深 iOS 工程师告诉我,他最近正在学习 Machine Learning 相关的知识.他觉得,对于程序员来说,技术进步大大超过世人的想象,如果你不 ...

  3. 洛谷 P2661 信息传递(并查集 & 最小环)

    嗯... 题目链接:https://www.luogu.org/problemnew/show/P2661 这道题和一些比较水的并查集不太一样,这道题的思路就是用并查集来求最小环... 首先,如果我们 ...

  4. vs获取最新时,提示签出解决方案

    项目中的文件有被意外去掉了只读属性的. VSS中签入状态的文件在本地都有只读属性. 如果VSS中是签入状态,而对应的本机文件没有只读状态,在获取最新版本的时候,就会弹出一个对话框提示签出还是用VSS中 ...

  5. LeetCode 069 Sqrt(x) 求平方根

    Implement int sqrt(int x).Compute and return the square root of x.x is guaranteed to be a non-negati ...

  6. hdu2069(Coin Change)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2069 Coin Change Time Limit: 1000/1000 MS (Java/Other ...

  7. 【JavaEE】Web Service 的工作原理

    Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的 ...

  8. 提高PHP编程效率的20个要点

    用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则 不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中 ...

  9. SpringBoot | 第二章:lombok介绍及简单使用

    在去北京培训的时候,讲师说到了lombok这个第三方插件包,使用了之后发现,确实是个神奇,避免了编写很多臃肿的且定式的代码,虽然现代的IDE都能通过快捷键或者右键的方式,使用Generate Gett ...

  10. eclipse配置android开发环境并搭建第一个helloWord工程

    一.搭建Android在eclipse下环境    一.JDK(不用安装  下载地址: http://www.xp510.com/xiazai/Application/program/23625.ht ...