HDU 6438 Buy and Resell
Posted liulex
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU 6438 Buy and Resell相关的知识,希望对你有一定的参考价值。
高卖低买,可以交易多次
维护一个优先队列,贪心
相当于每天卖出
用当前元素减优先队列最小得到收益
用0/卖出,1/买入标志是否真实进行了交易,记录次数
#include<bits/stdc++.h> using namespace std; typedef long long ll; ll A[500005]; #define P pair<ll,ll> priority_queue<P,vector<P>,greater<P> > q; int main() int T,N; scanf("%d",&T); while(T--) scanf("%d",&N); ll ans=0,t,tt=0; while(!q.empty())q.pop(); for(int i=0;i<N;i++) scanf("%lld",&A[i]); q.push(P(A[i],0)); q.push(P(A[i],1)); t=A[i]-q.top().first; if(q.top().second==1)tt+=2; q.pop(); ans+=t; cout<<ans<<‘ ‘<<tt<<‘\n‘;
以上是关于HDU 6438 Buy and Resell的主要内容,如果未能解决你的问题,请参考以下文章
HDU 6438 Buy and Resell (CCPC网络赛) 堆 贪心
HDU6438:Buy and Resell(贪心+数据结构)
2018中国大学生程序设计竞赛 - 网络选拔赛 hdu6438 Buy and Resell 买入卖出问题 贪心