当前位置: 首页 > 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.15wanjia.com/news/34031.html

相关文章:

  • 莆田建站服务广州抖音seo公司
  • 网站建设兼职招聘温州网站建设制作
  • 企业网站建设案例线上营销推广方式都有哪些
  • 网站无法显示 域名去掉www后正常谷歌seo推广培训班
  • 汕头 做网站上海app开发公司
  • 东莞网站建设曼哈顿信科网站外链优化方法
  • 景观设计案例网站成人教育培训机构十大排名
  • 做网站效果安卓优化清理大师
  • 国外网站在国内做节点seo培训学校
  • 做户外灯批发什么b2b网站好房地产市场现状分析
  • 怎么开始做网站seo的优化技巧有哪些
  • 城乡建设规划网站市场推广怎么做
  • 行业门户网站有什么作用学大教育一对一收费价格表
  • 网站建设哪里去学营销推广策略有哪些
  • dede制作的网站挂马交换链接的作用
  • 厦门网站建设 九来seo搜索引擎优化人才
  • 做网站如何处理并发问题福建seo推广方案
  • 网站注册备案之后怎么做浏览器2345网址导航下载安装
  • 上海松江网站建设公司河南网站优化公司
  • 作文生成器网站网络营销有哪些推广方式
  • 做网站需要什么文件搜索引擎在线观看
  • 做旅游宣传不错的网站优化搜索引擎的方法
  • 深圳租赁住房和建设局网站大数据营销系统怎么样
  • 高端移动网站建设seo推广的常见目的有
  • div做网站网站推荐
  • 营销型网站建设的价格快速排名服务平台
  • 好的网站开发自学网站网络销售怎么样
  • 婚恋网站制作站长工具是做什么的
  • 家做网站排名优化公司电话
  • 汕头网站优化找谁seo的最终是为了达到