任務執行順序
有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 同時只能有乙個人接水,正在接水的人和沒有接水的人都需要等待。完成接水的人會立刻消失,不會繼續等待。你可以決定所有人接水的順序,並希望最小化所有人等待時間乘以自己的...