股神小L
?
題解 貪心
若當(dāng)前手中還持有股,則一定會(huì)賣出去。
否則,考慮之前賣出的最便宜的股,若售價(jià)比當(dāng)前的股高,就買下這個(gè)股,否則我們就把之前賣出的最便宜的股改為買入,這樣一定會(huì)有股,然后再把這個(gè)股賣出即可。
簡(jiǎn)單題,用堆維護(hù)即可。
#include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<queue> #define LL long long #define M 200020 #define mid ((l+r)>>1) using namespace std; LL read(){LL nm=0,fh=1; char cw=getchar();for(;!isdigit(cw);cw=getchar()) if(cw=='-') fh=-fh;for(;isdigit(cw);cw=getchar()) nm=nm*10+(cw-'0');return nm*fh; } LL n,m,ans; priority_queue<LL> Q; int main(){n=read();for(LL tot=0,i=1;i<=n;i++){m=read();if(tot) tot--,ans+=m,Q.push(-m);else if(!Q.empty()&&m>-Q.top()){ans+=m+(Q.top()*2ll);Q.pop(),Q.push(-m),tot++;}else tot++,ans-=m;}printf("%lld\n",ans); return 0; }
?
轉(zhuǎn)載于:https://www.cnblogs.com/OYJason/p/9693180.html
總結(jié)
- 上一篇: 自定义View
- 下一篇: Nowcoder 提高组练习赛-R3