洛谷 P1654 产品排序(sort)(dp)

这是一篇关于洛谷P1654问题的博客,主要探讨如何通过动态规划(DP)和贪心策略来解决产品加工和冷却时间排序的问题,以最小化所有产品成型的总时间。博主提供了数据规模限制和输入输出格式,并给出了Pascal代码实现,包括双关键字排序和状态转移方程的详细解释。
摘要由CSDN通过智能技术生成

题目描述

有一系列产品,给定每个产品的加工时间和冷却成型时间(冷却过程产品之间没有关系,是单独冷却的)。现在你手上有两台机器可以用来加工,你需要安排产品加工的顺序以及去哪台机器加工,使得所有产品都成型的时间最早。机器之间互不相关,可以同时进行工作,一个机器一个时刻只能加工一个产品。

输入输出格式

输入格式:
第一行一个数n,表示产品个数,以下n行,每行两个数分别表示产品加工的时间A[i]和冷却时间B[i]。

【数据规模】

对于20%的数据,满足n≤6;

对于100%的数据,满足n,A[i],B[i]≤200。

输出格式:
一个数表示所有产品成型的最早时间。

输入输出样例

输入样例#1:
3
1 4
3 3
4 1
输出样例#1:
6

本题可以用根据冷却时间的顺序先进行一步贪心,再DP,保证得到最优值

f[i,j]代表共加工了前i个产品,1号机器加工使用j单位时间,得到的最小完成时间

状态转移方程f[i,j]:=max{j+b[i],f[i-1,j-a[i]],c[i]-j+b[i],f[i-1,j]} c代表前i个产品的总加工时间 当然还要注意判断能否取到j-a[i]和c[i]-j

pascal代码如下

program df;
var i,j,n,m,x,y,z,k,t:longint;
a,b,c:array[0..100000] of longint;
f:array[0..200,0..40000] of longint;
procedure

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值