我是靠谱客的博主 贪玩冥王星,最近开发中收集的这篇文章主要介绍codeforces 1526 C1. C2. Potions (Easy and Hard Version)(1500,1600,带悔贪心,优先队列),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

链接:

https://codeforces.com/problemset/problem/1526/C1     https://codeforces.com/problemset/problem/1526/C2

题意:

按顺序从左往右嗑药,保证hp>=0,尽可能嗑最多的药;

题解:

加HP的药一定要喝,扣HP的先喝,但要用个东西(优先队列)存起来,等把HP喝成复数时,把扣的最狠的那瓶药吐出来;

题解:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

int main()
{
	ll n;
	cin >> n;
	ll ans = 0;
	ll sum = 0;
	priority_queue<ll,vector<ll>,less<ll>>s;
	while (n--)
	{
		ll x;
		cin >> x;
		sum += x;
		ans++;
		if (x < 0);
		{
			s.push(-x);
		}
		if (sum < 0)
		{
			ans--;
			sum += s.top();
			s.pop();
		}
	}
	cout << ans << endl;
}

最后

以上就是贪玩冥王星为你收集整理的codeforces 1526 C1. C2. Potions (Easy and Hard Version)(1500,1600,带悔贪心,优先队列)的全部内容,希望文章能够帮你解决codeforces 1526 C1. C2. Potions (Easy and Hard Version)(1500,1600,带悔贪心,优先队列)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部