2016vijos 1-2 股神小L(堆)

维护前i天的最优解,那么在后面可能会对前面几天的买卖情况进行调整
如果前面买入,买入的这个在后面一定不会卖出
如果前面卖出,卖出的这个可能会在后面变成买入,因为买这个,卖后面的会获得更多的收益
用一个小根堆,存储前面所有的卖出的股票的价格
如果后面想卖出,扔到堆里
如果后面想买入,与堆顶元素比较,如果堆顶大,那就买入;如果堆顶小,那就把堆顶的卖出改为买入,后面那个卖出
即能卖就暂时先卖,扔到堆里,不优再调整
#include<queue>
#include<cstdio>
#include<iostream> using namespace std; typedef long long LL; priority_queue<int,vector<int>,greater<int> >q; void read(int &x)
{
x=; char c=getchar();
while(!isdigit(c)) c=getchar();
while(isdigit(c)) { x=x*+c-''; c=getchar(); }
} int main()
{
freopen("stock.in","r",stdin);
freopen("stock.out","w",stdout);
int n,x,y;
LL ans=;
read(n);
read(x);
ans-=x;
for(int i=;i<=n;++i)
{
read(x);
if(!(i&))
{
ans+=x;
q.push(x);
}
else
{
y=q.top();
if(x>y)
{
ans+=x-y*;
q.pop();
q.push(x);
}
else ans-=x;
}
}
cout<<ans;
}
2016vijos 1-2 股神小L(堆)的更多相关文章
- 股神小L 2016Vijos省选集训 day1
		
股神小L (stock.c/pas/cpp)============================ 小L厌倦了算法竞赛,希望到股市里一展身手.他凭借自己还行的计算机功底和可以的智商,成功建立一个模型 ...
 - 股神小L
		
题解 贪心 若当前手中还持有股,则一定会卖出去. 否则,考虑之前卖出的最便宜的股,若售价比当前的股高,就买下这个股,否则我们就把之前卖出的最便宜的股改为买入,这样一定会有股,然后再把这个股卖出即可. ...
 - 股神小L [贪心]
		
题面 思路 股票题肯定是贪心或者$dp$啊 这个题比较$naive$,可以看出来你这里买股票的过程一定是能不买就不买,能卖就拣最贵的日子卖,而且时间不能倒流(废话= =||) 所以我们按照时间从前往后 ...
 - 2016北京集训测试赛(十四)Problem A: 股神小L
		
Solution 考虑怎么卖最赚钱: 肯定是只卖不买啊(笑) 虽然说上面的想法很扯淡, 但它确实能给我们提供一种思路, 我们能不买就不买; 要买的时候就买最便宜的. 我们用一个优先队列来维护股票的价格 ...
 - [2016北京集训试题14]股神小D-[LCT]
		
Description Solution 将(u,v,l,r)换为(1,u,v,l)和(2,u,v,r).进行排序(第4个数为第一关键字,第1个数为第二关键字).用LCT维护联通块的合并和断开.(维护 ...
 - 股神小D [点分治 or LCT]
		
题面 思路 点分治非常$naive$,不讲了,基本思路就是记录路径最小最大值.....然后没了 重点讲一下LCT的做法(好写不卡常)(点分一堆人被卡到飞起hhhh) 首先,这个路径限制由边限制决定,而 ...
 - 股神小D
		
题目大意: 给定一棵树,每一条边有$L,R$两种权值,求有多少条路径满足$\max(L)\leq\min(R)$. 解法$1-$点分治$+$二维数点 统计树上的路径应首先想到点分治,我们很显然可以搜出 ...
 - 2016北京集训测试赛(十四)Problem B: 股神小D
		
Solution 正解是一个\(\log\)的link-cut tree. 将一条边拆成两个事件, 按照事件排序, link-cut tree维护联通块大小即可. link-cut tree维护子树大 ...
 - (2016北京集训十四)【xsy1556】股神小D - LCT
		
题解: 题解居然是LCT……受教了 把所有区间按照端点排序,动态维护目前有重叠的区间,用LCT维护即可. 代码: #include<algorithm> #include<iostr ...
 
随机推荐
- MySQL 报错 1055
			
具体报错 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'exer.student.sid' w ...
 - python 识别验证码
			
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/instal ...
 - BZOJ3456 城市规划  【多项式求ln】
			
题目链接 BZOJ3456 题解 真是一道经典好题,至此已经写了分治\(NTT\),多项式求逆,多项式求\(ln\)三种写法 我们发现我们要求的是大小为\(n\)无向联通图的数量 而\(n\)个点的无 ...
 - Spring cloud config 使用gitHub或者gitee连接
			
1. 创建SpringCloud项目,引入对应的Spring-config-server对应的jar <dependency> <groupId>org.springframe ...
 - 使用Docker for Windows初体验
			
https://www.baidu.com/link?url=61Kwadwh6h__2Vmjf7lAKVo1RjhsULAqERcMXYnYzkLKrRVpygwBJVnjultH8zbq& ...
 - 牛客网NOIP赛前集训营-提高组(第一场)
			
牛客的这场比赛感觉真心不错!! 打得还是很过瘾的.水平也比较适合. T1:中位数: 题目描述 小N得到了一个非常神奇的序列A.这个序列长度为N,下标从1开始.A的一个子区间对应一个序列,可以由数对[l ...
 - 由AC自动机引发的灵感
			
一,WA自动机 #include <cstdio> using namespace std; int main() { printf("☺"); ; } 二,TLE自动 ...
 - jquery.form.js  ajax提交上传文件
			
项目中最近有用到表单提交,是带有图片上传的表单录入,需要ajax异步提交,网上找了好多例子都是只能提交上传字段一个信息的,这里整理一下.表单里有普通文本信息字段也有图片上传字段. 1.jsp代码--引 ...
 - 项目管理干货——项目管理入门级书籍(附赠5G项目管理书籍电子版)
			
各位项目经理我们都是在不断的学习和自我学习中不断成长的,所以我们需要多看书,才能做好一个项目经理,但是很多人,在挑选书籍的时候犯了难,今天我就把自己学习的时候看的那些书单整理出来,大家有需要的可以留言 ...
 - python 中深拷贝和浅拷贝的区别
			
通俗的理解,浅就是外面,深就是里面.浅拷贝的意思就是只拷贝外面的一层,深拷贝就是拷贝的里面的所有. 看两段代码: 元组: #!/usr/bin/env/python # -*-coding:utf-8 ...