[洛谷]P1843 奶牛晒衣服 (#贪心 -1.15)(#STL -1.6)

版权声明:JCBP工作室 & A.pro https://blog.csdn.net/Apro1066/article/details/82470008

题目背景

熊大妈决定给每个牛宝宝都穿上可爱的婴儿装 。 于是 , 为牛宝宝洗晒衣

服就成了很不爽的事情。

题目描述

熊大妈请你帮助完成这个重任 。 洗完衣服后 , 你就要弄干衣服 。 衣服在

自然条件下用 1 的时间可以晒干 A 点湿度 。 抠门的熊大妈买了 1 台烘衣机 。

使用烘衣机可以让你用 1 的时间使 1 件衣服除了自然晒干 A 点湿度外,还

可以烘干 B 点湿度,但在 1 的时间内只能对 1 件衣服使用。

N 件衣服因为种种原因而不一样湿 , 现在告诉你每件衣服的湿度 , 要你

求出弄干所有衣服的最少时间(湿度为 0 为干 ) 。

输入输出格式

输入格式:

第一行 N , A , B ;接下来 N 行,每行一个数,表示衣服的湿度( 1 ≤ 湿

度, A , B ≤ 500000 , 1 ≤ N ≤ 500000 ) 。

输出格式:

一行,弄干所有衣服的最少时间。

输入输出样例

输入样例#1

3 2 1
1
2
3

输出样例#1

1

说明

第 1 个时间内,用机器处理第 3 件衣服,此外,所有衣服自然晒干 。

费 1 时间全部弄干。


思路

一道C++ STL中的优先队列的题目。(本蒟蒻太弱了以至于说这句话底气不足)利用贪心的思想,每次烘干最湿的那个衣服。

#include <stdio.h>
#include <iostream>
#include <queue>
#include <algorithm>
using namespace std;
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	priority_queue<long long int> pque;
	int s(0),i,j,k,b,n,a;
	cin>>n>>a>>b;
	for(i=1;i<=n;i++)
	{
		cin>>k;
		pque.push(k);
	}
	while(pque.top()-s*a>0)
	{
		s++;
		k=pque.top();
		pque.pop();
		pque.push(k-b);
	}
	cout<<s<<endl;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/Apro1066/article/details/82470008