m個機器、n個任務,每個機器執行任務時的時間不同,如何分配任務讓機器排程使得總時間最短?
如:2 個機器 6個任務 每個機器執行任務時間分別是10min和7min
假設3 3 分,需要max(30,21) = 30
假設4 2 分, 需要max(40,14)=40
假設2 4 分,需要max(20,28) = 28
求排程策略
思路:二分,
最多需要min(t[0]...t[m-1])*的時間,最少是0;low = 0, high = n*min(t[0]...t[m-1])
取得mid,
判斷 mid/t[0]+mid/t[1]+mid/t[2]+...mid/t[m-1] >= n high = mid-1;
否則 low = mid+1;
#include using namespace std;
#include #include void ept(int t,int m,int n)
if(m >= n)else
if(cnt >= n)else if(cnt < n)
}printf("%d",low);
}}int main()
system("pause");
}
測試樣例如下:
2015美團筆試(南京地區)
昨天去南京參加的美團筆試,我去,好多人,看來大家都很想去。雖然自己比大牛比菜菜,但也做上幾道題,看來差距不是特別特別大,哈哈。把昨天的題目,自己上機試試。在字串中找出連續最長的數字串,並把這個串的長度返回,並把這個最長數字串付給其中乙個函式引數outputstr所指記憶體。例如 abcd12345e...
美團筆試2018 9 10
第一題 無向圖 def min path n,b node list 0 n 1 儲存節點的距離 for path in b 遍歷路徑,使後一節點距離值等於前一節點距離值加一 x,y path node list y node list x 1 depth 0 找到最大深度 for i in ran...
美團筆試(22 03 19)
一共五道 題,看了前面三道,ac了三道,後面兩道題沒有時間看,此處將對前三題進行記錄總結,後附 題意 給定一組n個商品的 下單購買商品時,必須購買前i個商品,即購買商品列表是商品列表的字首。提供兩種優惠規則,滿減優惠和折扣優惠,每次下單只能選擇某種優惠規則。問購買前i 1 i n 個商品時,使用哪種...