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 有...