六月二十日 上午(深搜)

2022-06-03 09:00:09 字數 894 閱讀 6102

1最佳排程問題

假設有n個任務由k個可並行工作的機器來完成。完成任務i需要的 時間為ti。試設計乙個演算法找到出完成這個n個任務的最佳排程,使得完成全部任務的時間最早。

對任意給定的整數n和k,以及完成任務i需要的時間為ti,1<=i<=n。程式設計計算完成這n個任務的最佳排程。

n<=20,k<=8

第1 行有2個正整數n 和k。第2行的n個正整數是完成n 根任務需要的時間。

計算出的完成全部任務的最早時間

7 3

2 14 4 16 6 5 3

17

這道題讀完有點蒙,一開始想的是深搜每乙個點,然後發現怎麼調都不對

再仔細一想,把每個機器當做容器,不停地把每個任務,放在每個容器裡,

排列組合一下,再用兩個剪枝。

這裡有乙個技巧,就是可以先貪心算出乙個比較好的解,然後用這個解去

減掉深搜時候的大多數枝幹,可以提高速度

#include#include

#include

#include

#include

using

namespace

std;

int n,k,ans,a[1001],s[1001

];

bool cmp(int a,int

b)int

readin()

while(ch>='

0'&&ch<='9'

)

returnx;}

void dfs(int x,int

y)

for(i=1;i<=k;i++)

} int

main()

view code

六月二十五

明天就要放假了,今下午的課實在沒什麼人想上。第一節vb課,去了11個,這是因為老師說會透漏考試題,一定要去啊,可還是少得可憐。下課後又走了5個,第二節的作業系統只有6個人去了。本來我不想去的,但因為要問問老師那實驗報告怎麼寫,所以就去了。教學樓第三棟,安靜得有點嚇人,來到五樓沒見乙個同學。自己在陽台...

六月二十四

今天講了陣列的特點,陣列是乙個連續的記憶體空間。陣列中的元素都是變。陣列變數中存放的是連續空間第乙個元素的位址。陣列元素下標從0開始,最大的下標是長度減一。陣列中元素的型別就是申明陣列時定義的型別。陣列建立之後,長度不可以變化。陣列建立後,每個元素都會做初始化。int 0 double 0.0。講了...

六月二十6 日

ubuntu18.04 雖然預設使用了gnome桌面,但是經過測試 gdm 並不能很好得工作,通過設定系統啟動方式,然後重啟來達到關閉 x server 的目的 ps.gdm是gnome display manager,gnome的桌面環境管理器 關閉使用者圖形介面 sudo systemctl s...