問題描述:
有n個人排隊到r個水龍頭去打水,他們裝滿水桶的時間為t1,t2,…,tn為整數且各不相等,應如何安排他們的打水順序才能使他們花費的時間最少?
【樣例輸入】
4 2 //4人打水,2個水龍頭
2 6 4 5 //每個打水時間
先放**:
#include #include #include using namespace std;
int a[3000001],s[30000001];
int main()
printf("%d",minx);
}
記一點小筆記:
注意看這兩行**:
s[j]+=a[i];
minx+=s[j];
剛開始很是奇怪,不知為什麼這麼寫,甚至覺得是錯的,現在細細分析,寫法很巧妙。
首先,我們定義每個水龍頭的總時間為s(為陣列),則第i個水龍頭為s[i],在定義n個人在此打水,每人所花費總時間為t,已知s[i]=t[1]+t[2]+t[3]+.....+t[n]。又因為t[i]=t[i-1]+第i個人自己打水時間,所以可得此處的s[j]+=a[i]
就在求t的各項值,而minx是把它們加起來。
貪心經典小題
題目背景 快noip了,yyy很緊張!題目描述 現在各大oj上有n個比賽,每個比賽的開始 結束的時間點是知道的。yyy認為,參加越多的比賽,noip就能考的越好 假的 所以,他想知道他最多能參加幾個比賽。由於yyy是蒟蒻,如果要參加乙個比賽必須善始善終,而且不能同時參加2個及以上的比賽。輸入輸出格式...
復健計畫 2 貪心 經典的貪心題目 模型和思路
復健題目 poj 2376,poj 1328,poj 3190,poj 2393,poj 1017和acwing上的貪心模板題目.一 區間問題 區間問題一般可分為四類問題,簡稱為區間選點 區間分組 區間覆蓋和最大不相交區間數量 1 區間選點 題目的一般描述為 給定n個閉區間,請你在數軸上選擇盡量少的...
NYOJ 106 揹包問題(貪心,經典題目)
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現在有很多物品 它們是可以分割的 我們知道它們每個物品的單位重量的價值v和重量w 1 v,w 10 如果給你乙個揹包它能容納的重量為m 10 m 20 你所要做的就是把物品裝到揹包裡,使揹包裡的物品的價值總和最大。輸入第一行輸入...