我是靠谱客的博主 贪玩冥王星,最近开发中收集的这篇文章主要介绍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,带悔贪心,优先队列)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复