經典貪心題NOP 1205流水線排程

2022-06-27 13:30:11 字數 2700 閱讀 5868

思路:先構成生產週期最短的最優作業順序:

1.把作業分為兩類,

a類 : 第乙個花的作業的時間

b類 : 第乙個花的作業的時間》= 第二個花的作業的時間

2.排序

對a類進行排序:按第乙個花的作業的時間從小到大

對b類進行排序:按第二個花的作業的時間從大到小

3.合併

把a類b類作業合併即為生產週期最短的最優作業順序

輸出他們作業的順序:

"<

for(int i=0;i)

cout

cout

<

int sum=p[0

].x;

int res=p[0].x+p[0

].y;

for(int i=1;i)

cout

<

"<

printf(

"%d\n

",res);

}return0;

}

#include#include 

#include

using

namespace

std;

#define max_v 50005

struct

nodep[max_v],pp[max_v];

bool

cmp1(node a,node b)

bool

cmp2(node a,node b)

intmain()

else

}sort(p,p+len1,cmp1);

sort(pp,pp+len2,cmp2);

for(int i=len1;i)

//cout<

for(int i=0;i//

cout/

cout

].x;

int res=p[0].x+p[0

].y;

for(int i=1;i)

//%d\n

",res);

}return0;

}

noip 1205

動態規劃的思想:

思路:johnson演算法:

1:將任務分為兩類,a類任務t1=t2

2:兩類任務分別排序,其中a類按 t1 遞增排序,b類按 t2 遞減排序

3:合併兩類,將第二類任務接到第一類任務後面,此時任務的順序最佳

4:遍歷所有任務,計算總耗時

說下我的理解,對於 t1作業來說肯定是一直執行的,那麼對於 t2 作業則會有 空閒和堆積兩種境況,按照最小耗時,顯然是不允許出現空閒情況的,因此 要先將 作業中 t1=t2的作業了,此時t2作業還處於堆積情況中,當每執行乙個作業,由於 t1>=t2,t2作業中堆積的作業耗時會越來越小,因此要先將 t2較大的先執行,否則t2較大的滯留在最後便會增加耗時,因此再將 t1>=t2的作業按照 t2遞減的順序執行,如此便為最小耗時。

/*

johnson演算法:

1:將任務分為兩類,a類任務t1=t2

2:兩類任務分別排序,其中a類按 t1 遞增排序,b類按 t2 遞減排序

3:合併兩類,將第二類任務接到第一類任務後面,此時任務的順序最佳

4:遍歷所有任務,計算總耗時

*/#include

#include

using

namespace

std;

typedef

long

long

ll;

struct

node };

const

int max_n=50005

;int

n;int

a[max_n],b[max_n];

node d[max_n];

intbest[max_n];

intmain()

sort(d,d+n);

int l=0,r=n-1

;

for(int i=0;i)

if(d[i].group) best[l++]=d[i].id;

else best[r--]=d[i].id;

ll sum=0,ans=0

;

for(int i=0;i)

cout

//for(int i=0;i//

printf("%d ",best[i]+1);

//printf("\n");

return0;

}

2204 母艦 經典貪心

2204 母艦 時間限制 1 s 空間限制 32000 kb 題目等級 gold 在小a的星際大戰遊戲中,一艘強力的母艦往往決定了一場戰爭的勝負。一艘母艦的攻擊力是普通的ma mobile armor 無法比較的。對於一艘母艦而言,它是由若干個攻擊系統和若干個防禦系統組成的。兩艘母艦對決時,一艘母艦...

貪心經典題目

問題描述 有n個人排隊到r個水龍頭去打水,他們裝滿水桶的時間為t1,t2,tn為整數且各不相等,應如何安排他們的打水順序才能使他們花費的時間最少?樣例輸入 4 2 4人打水,2個水龍頭 2 6 4 5 每個打水時間 先放 include include include using namespace...

貪心經典小題

題目背景 快noip了,yyy很緊張!題目描述 現在各大oj上有n個比賽,每個比賽的開始 結束的時間點是知道的。yyy認為,參加越多的比賽,noip就能考的越好 假的 所以,他想知道他最多能參加幾個比賽。由於yyy是蒟蒻,如果要參加乙個比賽必須善始善終,而且不能同時參加2個及以上的比賽。輸入輸出格式...