当前位置: 首页 > news >正文

网站建设就业方向包车哪个网站做的最好

网站建设就业方向,包车哪个网站做的最好,做网站备案需要哪些材料,老年大学网站建设相信大家对贪心算法已经见怪不怪了,但是一旦我们的决策条件会随着我们的步骤变化,我们该怎么办呢?有没有什么方法可以反悔呢? 今天就来讲可以后悔的贪心算法,反悔贪心。 https://www.luogu.com.cn/problem/CF865Dhttp…

        相信大家对贪心算法已经见怪不怪了,但是一旦我们的决策条件会随着我们的步骤变化,我们该怎么办呢?有没有什么方法可以反悔呢?

        今天就来讲可以后悔的贪心算法,反悔贪心。

https://www.luogu.com.cn/problem/CF865Dicon-default.png?t=N7T8https://www.luogu.com.cn/problem/CF865D

题目描述

        You can perfectly predict the price of a certain stock for the next 𝑁 days. You would like to profit on this knowledge, but only want to transact one share of stock per day. That is, each day you will either buy one share, sell one share, or do nothing. Initially you own zero shares, and you cannot sell shares when you don't own any. At the end of the 𝑁 days you would like to again own zero shares, but want to have as much money as possible.

输入格式

Input begins with an integer 𝑁N (2<=𝑁<=3⋅105), the number of days.

Following this is a line with exactly 𝑁N integers 𝑝1,𝑝2,...,𝑝𝑁(1<=𝑝𝑖<=106) . The price of one share of stock on the 𝑖 -th day is given by 𝑝𝑖​ .

输出格式

Print the maximum amount of money you can end up with at the end of 𝑁 days.

输入输出样例

输入 #1

9
10 5 4 7 9 12 6 2 10

输出 #1

20

输入 #2

20
3 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 2 3 8 4

输出 #2

41

        就像买卖股票,谁都不知道接下来股票的趋势,但如果我们知道了趋势,又如何让自己的收益最大化呢?

        因此,我们可以先考虑两种情况:

        一:当第一天的价格高于第二天时,我们就只要屯着,因为卖出去是没有收益的。

        二:反之,我们每次遇见第二天的价格高于第一天时,我们就直接先考虑卖出(能赚一点是一点),我们会获得收益,那假如之后价格更高怎么办?当然是反悔了,我们用一个小根堆来存储已经路过的天数,秉承着只要有钱赚就卖的原则,我们充分利用priority_queue的强大优势,当堆顶元素比当日价格低的时候,我们就卖掉(映射到代码就是pop()),然后将总获利加上差价,就是买股票的钱,那么怎么反悔呢,我们在pop堆顶元素的时候,将一个当日的股价压入堆,无论在哪里,只要堆不空,那么只要有股价高于堆顶元素的就重复以上步骤,这样做不会舍弃更高的利润,而是将难以维护的决策变成了类似滚雪球一样的方式,这就是反悔贪心的核心操作。比较抽象,需要仔细理解体会。

        最后附上完整代码:

#include <bits/stdc++.h>using namespace std;typedef long long LL;
const int N = 1e6 + 10;int p[N]; 
priority_queue<int, vector<int>, greater<int> > q;
int n;
LL ans = 0;int main()
{cin >> n;for(int i = 1; i <= n; i ++)cin >> p[i];for(int i = 1; i <= n; i ++){if(!q.empty() && p[i] > q.top()){ans += p[i] - q.top();q.pop();q.push(p[i]);}q.push(p[i]);}cout << ans << endl;
}

        tip:这是一次CF上的题,在洛谷上提交的时候要记得绑定CF账号哦>_<!!!

http://www.yayakq.cn/news/772422/

相关文章:

  • 门户网站建设 总结net网站开发 兼职
  • 网站建设方案备案上海人才市场招聘网
  • 电子商务网站的建设与运营怎么管理wordpress
  • 如何自己做网站腾讯中国十大搜索引擎网站
  • 网站优化软件下载鞍山网站建设公司
  • 石家庄网站建设推广电话北京三里屯
  • 品牌网站建设哪个好做搜狗手机网站快速
  • 菏泽网站建设谁最出名酒店设计公司排名前十强
  • 中山网站搜索排名网站怎么做的精致一点
  • 传媒公司网站模板网站结构形式有哪些
  • 做网站市场价格多少钱SEO如何建设网站
  • 山西城乡与住房建设厅网站注册个人网站域名top
  • php html5企业网站源码微山网站建设
  • 如何建立公司网站模块织梦cms一键更新网站无法使用
  • 扬州网站建设建设网站空间选择
  • 广西城市建设学校学生网站北京网站开发建设
  • 网站更改了资料 百度什么时侯来抓取东方购物网上商城
  • 网站3级营销是怎么做的网上购物的网站开发背景
  • 网站开发团队名字做网站需要具备哪些条件
  • 网站开发课程技术培训网站推广经验杂谈
  • 房产网站开发公司wordpress登录数据库吗
  • 各大房产网站framework7做网站
  • 网站扁平化设计理念android开发难吗
  • 网站上放的动画视频是怎么做的沈阳网站制作流程
  • 甘肃省住房与建设厅网站首页自建网站做网上超市可行吗
  • 织梦企业门户网站最好的免费logo设计网站
  • 赣州有没有做网站的进不了wordpress
  • 长春做网站wang尼乐清网站建设
  • 企业网站建设规划书的内容摄影做网站
  • 上线了建的网站免费吗多个域名多国语言网站seo优化