问题描述和要求
具有截止时间和误时惩罚的任务安排问题可描述如下:
(1)给定 n 个任务的集合 S={1,2,…,n};
(2)完成任务 i 需要 ti时间,1≤i≤n;
(3)任务 i 的截止时间 di,1≤i≤n,即要求任务 i 在时间 di之前结束;
(4)任务 i 的误时惩罚 wi,1≤i≤n,即任务 i 未在时间 di之前结束将招致 wi 的惩罚;若按时完成则无惩罚。
算法设计:设计一个贪心选择思想与动态规划思想相结合的算法,解决以上任务 安排问题,确定 S 的一个最优时间表,使得总误时惩罚达到最小。
数据输入:首先输入一个正整数 n 表示任务的个数。接下来的 n 行中,每行输入 三个整数,分别代表相应任务需要的时间 ti,截止时间 di,以及误时惩罚 wi。
结果输出:输出任务安排结果以及总的误时惩罚。
测试样例
测试样例1:
![外链图片转存失败,源站可能有防盗在这里插入!链机制,建描述]议将图片上https://传(imblog.csgmg.cn/001912MFf105213307264.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shado,text_aHR0cHM6Ly_ibG9nLmNzZG7ubmV0L1NRQmJvbmU=,size_16,color_FFFFFF,t_70843)(测试样例process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1NRQmJvbmU=,size_16,color_FFFFFF,t_70)]](https://i-blog.csdnimg.cn/blog_migrate/9aa75d7310a978ee7d9dc235085b18b0.jpeg)
测试样例2:

测试样例3:

测试样例4:

测试样例5:

具体代码
import java.util.Arrays;
public class arrange {
public static void main(String args[]){
int [][]task1 = {
{
1,4,70,1},{
2,2,60,2},{
1,4,50,3},{
1,3,40,4},{
1,1,30,5},{
1,4,20,6},{
3,6,80,7}};//四个数依次为:花费时间、时间期限、惩罚、任务编号
int [][]task2 = {
{
1,4,70,1},{
2,2,60,2},{
1,4,50,3},{
1,6,40,4},{
1,1,30,5},{
1,4,20,6},{
3,5,20,7}};
int [][]task3 = {
{
2,5,100,1},{
3,4,70,2},{
1,6,30,

本文介绍一个结合贪心与动态规划的算法,解决具有截止时间和误时惩罚的任务安排问题。目标是为n个任务找到最优时间表,以最小化总误时惩罚。数据输入包括任务数量、每个任务的执行时间、截止时间和误时惩罚。文章提供了测试样例和代码实现。
最低0.47元/天 解锁文章
2960

被折叠的 条评论
为什么被折叠?



