51nod貪心演算法入門 任務分配問題

2022-08-09 07:12:11 字數 570 閱讀 3833

任務執行順序

有n個任務需要執行,第i個任務計算時佔r[i]個空間,而後會釋放一部分,最後儲存計算結果需要佔據o[i]個空間(o[i] < r[i])。

分析:可以抽象成,從乙個整數開始,每次減去a,再加上b (a,b都是正數),要求每次操作都不產生負數。

令a[i] = r[i], b[i] = r[i] – o[i],o[i] < r[i],有0

#include#include

#include

using

namespace

std;

struct

pointp[

100001

];int

cmp(point x,point y)

intmain()

sort(p,p+n,cmp);

sum=p[0

].r;

ans=p[0

].r;

for(i=0;i)

ans=ans-p[i].r+p[i].o;

}printf(

"%d\n

",sum);

}}

貪心演算法 51nod排隊接水

n個人一起排隊接水,第i個人需要b i 的時間來接水。1 n 1000 0 b i 1000 同時只能有乙個人接水,正在接水的人和沒有接水的人都需要等待。完成接水的人會立刻消失,不會繼續等待。你可以決定所有人接水的順序,並希望最小化所有人等待時間的總和。收起第一行乙個整數n 接下來n行,每行乙個整數...

51nod 貪心入門

有若干個活動,第i個開始時間和結束時間是 si,fi 活動之間不能交疊,要把活動都安排完,至少需要幾個教室?分析 能否按照之一問題的解法,每個教室安排盡可能多的活動,即按結束時間排序,再貪心選擇不衝突的活動,安排乙個教室之後,剩餘的活動再分配乙個教室,繼續貪心選擇 反例 a 1,2 b 1,4 c ...

51NOD 貪心演算法專題 C 接水問題二

n個人一起排隊接水,第i個人的重要性是a i 需要b i 的時間來接水。1 n 100000 0 b i 1000 0 a i 1000 同時只能有乙個人接水,正在接水的人和沒有接水的人都需要等待。完成接水的人會立刻消失,不會繼續等待。你可以決定所有人接水的順序,並希望最小化所有人等待時間乘以自己的...