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

2021-08-24 20:17:34 字數 1046 閱讀 5933

n個人一起排隊接水,第i個人的重要性是a[i],需要b[i]的時間來接水。

1 <= n <= 100000

0 <= b[i] <= 1000

0 <= a[i] <= 1000

同時只能有乙個人接水,正在接水的人和沒有接水的人都需要等待。

完成接水的人會立刻消失,不會繼續等待。

你可以決定所有人接水的順序,並希望最小化所有人等待時間乘以自己的重要性a[i]的總和。

第一行乙個整數n。

以下n行,每行兩個整數a[i]和b[i]。

一行乙個整數表示答案。
4

1 42 3

3 24 1

35
c++的執行時限為:1000 ms ,空間限制為:131072 kb

//最小化所有人等待時間*自己重要性 的總和 

#include #include #include #include #include using namespace std;

const int nmax=100000+10;

typedef long long ll;

paira[nmax];

//按照b[i]/a[i]排序,會出現0/0的情況;

bool cmp(const pair&a,const pair&b)

} sort(a,a+n,cmp);

/*for(int i=0;i

ll z=0,s=0;

for(int i=0;i

printf("%lld\n",z);

} return 0;

}

貪心演算法 51nod排隊接水

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

51Nod 排隊接水 貪心

n n 個人一起排隊接水,第 i role presentation i i個人需要b i b i 的時間來接水。1 n 1000 1 n 1000 0 b i 1000 0 b i 1000 同時只能有乙個人接水,正在接水的人和沒有接水的人都需要等待。完成接水的人會立刻消失,不會繼續等待。你可以決...

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

任務執行順序 有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 有...