_bzoj1029 [JSOI2007]建筑抢修贪心 堆

Posted ciao_sora

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了_bzoj1029 [JSOI2007]建筑抢修贪心 堆相关的知识,希望对你有一定的参考价值。

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1029

经典的贪心问题,不解释。

#include <cstdio>
#include <algorithm>
#include <queue>

const int maxn = 150005;

int n, ima, ans;
struct st {
	int x, y;
} a[maxn];
std::priority_queue<int> hp;

bool cmp(const st & aa, const st & ss) {
	return aa.y < ss.y;
}

int main(void) {
	//freopen("in.txt", "r", stdin);
	scanf("%d", &n);
	for (int i = 0; i < n; ++i) {
		scanf("%d%d", &a[i].x, &a[i].y);
	}
	std::sort(a, a + n, cmp);
	
	for (int i = 0; i < n; ++i) {
		if (ima + a[i].x <= a[i].y) {
			ima += a[i].x;
			++ans;
			hp.push(a[i].x);
		}
		else if (a[i].x < hp.top()) {
			ima = ima - hp.top() + a[i].x;
			hp.pop();
			hp.push(a[i].x);
		}
	}
	printf("%d\n", ans);
	return 0;
}

  

以上是关于_bzoj1029 [JSOI2007]建筑抢修贪心 堆的主要内容,如果未能解决你的问题,请参考以下文章

[BZOJ1029][JSOI2007]建筑抢修

BZOJ.1029.[JSOI2007]建筑抢修(贪心)

BZOJ-1029: [JSOI2007]建筑抢修(贪心+堆优化)

BZOJ1029: [JSOI2007]建筑抢修(贪心)

BZOJ1029: [JSOI2007]建筑抢修[模拟 贪心 优先队列]

BZOJ 1029: [JSOI2007]建筑抢修 堆+贪心