upc 6910 洗衣服(優先佇列 貪心)

2021-08-22 10:31:52 字數 1532 閱讀 4924

時間限制: 2 sec  記憶體限制: 128 mb

提交: 26  解決: 7

[提交] [狀態] [討論版] [命題人:admin]

題目描述

你現在要洗l件衣服。你有n臺洗衣機和m臺烘乾機。由於你的機器非常的小,因此你每次只能洗滌(烘乾)一件衣服。

第i臺洗衣機洗一件衣服需要wi分鐘,第i臺烘乾機烘乾一件衣服需要di分鐘。請問把所有衣服洗乾淨並烘乾,最少需要多少時間?假設衣服在機器間轉移不需要時間,並且洗完的衣服可以過一會再烘乾。

輸入輸入第一行有3個整數l,n和m。第二行有n個整數w1,w2,...,wn。第三行有m個整數d1,d2,...,dm。

輸出輸出一行乙個整數,表示所需的最少時間。

樣例輸入

1 1 1

1200

34

樣例輸出

1234
提示

中山紀念中學20170310

[提交] [狀態]

【總結】

好題,好神仙題,好神仙貪心題。

【分析】

按照貪心策略,把每乙個洗衣機都壓入優先佇列,壓入的權值代表:如果我要用這個洗衣機,最早將在什麼時刻洗完一件衣服。

很明顯,如果我用某個洗衣機洗過一次,那麼其他衣服想用它的話,需要總共w[i]*2的時間洗完。

烘乾的話,我們想要最晚烘乾的那件衣服盡量早,所以我們讓最晚洗完的那件衣服,先烘乾(不要等了,這最晚洗完的要是等,肯定會拖延總時間)

以此貪心,解題。。

【**】

/****

***author: winter2121

****/

#include#define rep(i,s,t) for(int i=s;i<=t;i++)

#define si(i) scanf("%d",&i)

#define pi(i) printf("%d\n",i)

using namespace std;

typedef long long ll;

const int mod=1e9+7;

const int max=2e5+5;

const int inf=0x3f3f3f3f;

const double eps=1e-8;

int dir[9][2]=;

templatebool gmax(t &a,t b)

templatevoid gmod(t &a,t b)

typedef pairpii;

priority_queue,greater>q1,q2;

int l,n,m;

ll tim[max*5],w[max],d[max];

int main()

for(int i=1;i<=m;i++)

for(int i=0;i=0;i--) //讓最晚洗完的衣服,盡早的烘乾,才能保證最長的那個時間盡量短

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

return 0;

}

行業只是洗衣服 統帥推出能洗衣服纖維的洗衣機

替換高畫質大圖 纖維級潔淨背後的技術引領 去除乙個口紅印,背後是乙個研發團隊歷時18個周的實驗。市面上的唇彩種類和顏色上百種,我們的實驗就需要幾十萬次。統帥研發人員告訴記者,每一種汙漬和面料的洗滌,需要洗滌水的水溫水質 洗滌劑的清潔效果和衣物材質洗滌方式這3大因素的配合。這意味著,在日常生活中常見的...

問題 M 洗衣服

時間限制 2 sec 記憶體限制 128 mb 提交 60 解決 19 提交 狀態 討論版 命題人 admin 題目描述 你現在要洗l件衣服。你有n臺洗衣機和m臺烘乾機。由於你的機器非常的小,因此你每次只能洗滌 烘乾 一件衣服。第i臺洗衣機洗一件衣服需要wi分鐘,第i臺烘乾機烘乾一件衣服需要di分鐘...

洗衣服的演算法改進

昨晚在洗衣服的時候,突然想到以前洗衣服的方法效率極低,先說一下以前是怎樣洗的。1.放滿一桶水。2.把要洗的衣服塞進這桶水裡。3.把衣服洗乾淨,然後放到乙個盆子裡,並倒乾淨桶裡的水。4.重新把桶子裝滿水,洗第二遍。重複步驟3。5.重複步驟4。6.洗衣服完畢。這樣的洗法只需要乙隻桶和乙隻盆,由於前幾天小...