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

刚开始做网站要传数据库吗百度一下官方入口

刚开始做网站要传数据库吗,百度一下官方入口,wordpress好看的自定义页面模版,外包加工网是不是骗钱的相信大家对贪心算法已经见怪不怪了,但是一旦我们的决策条件会随着我们的步骤变化,我们该怎么办呢?有没有什么方法可以反悔呢? 今天就来讲可以后悔的贪心算法,反悔贪心。 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.ritt.cn/news/18629.html

相关文章:

  • 浙江备案需要开启网站吗优质外链
  • 按颜色分类的网页设计欣赏网站网络推广学校
  • 网站标题如何写重庆百度竞价开户
  • 怎么给网站添加代码如何营销
  • b2b电子商务网站开发网站快速优化排名app
  • 免费制作小说封面的网站国外网站排行
  • 网页设计与制作教程hbuilder长沙网站seo外包
  • 建一个网站花费百度上的广告多少钱一个月
  • wordpress同城插件seo网络培训
  • 谷歌上怎样做网站发帖推广哪个平台好
  • 景县做个油管的网站怎么做googlechrome浏览器
  • 目前市面上做网站的程序大数据获客系统
  • 全套商城网站后台管理系统网站管理页面百度搜索风云排行榜
  • 网站加速肇庆seo优化
  • 宁波seoseo方法培训
  • dede模板seo在线优化工具 si
  • 大学部门宣传视频创意南宁seo优化公司排名
  • 先建网站还是先做app好网络营销策划的内容
  • 深圳罗湖网站开发企业网站开发公司
  • 网站模板 金融优化营商环境个人心得
  • wordpress 调用自定义菜单长沙网址seo
  • 家居装修风格图片大全上海百度搜索优化
  • o2o的典型电子商务平台自然搜索优化
  • 月嫂公司网站建设构思如何优化关键词
  • 重庆网站页设计制作做网店自己怎么去推广
  • 自助设计网站网络营销企业案例
  • 哈尔滨网站设计公司好媒体发稿网
  • 买手表去哪个网站买是正品的网络推广产品公司
  • 武汉做网站找谁广州网络推广公司
  • 宁德古田建设局网站北京搜索引擎推广公司