hiho 1604 - 股票價格,思維題
阿新 • • 發佈:2017-10-13
namespace 價格 algorithm nbsp set 關註 i++ ref --
題目鏈接
題目大意
小Hi最近在關註股票,為了計算股票可能的盈利,他獲取了一只股票最近N天的價格A1~AN。
在小Hi的策略中,每天可以在下列三種操作中選取一種:
1.什麽也不做;
2.按照當天的價格買進一個單位的股票;
3.按照當天的價格賣出部分或所有股票。
現在小Hi希望能夠知道,如果在N天前手中持有的股票數為0,並且假設擁有無限的金錢,在這N天結束能夠獲得的最大利潤是多少?
第一行包含一個整數N。
第二行包含N個整數,A1, A2, ... AN。
對於30%的數據, 1 ≤ N ≤ 103
對於100%的數據,1 ≤ N ≤ 106, 1 ≤ Ai ≤ 100
----------------------------------------------------------------------------------------------------------------------------
畫下折線圖就明白了,從後向前找,如果小於當前股票值 ans+=差值,這就是利潤
#include <cstdio> #include <iostream> #include <algorithm> using namespace std; typedef long long LL; const int N = 1000100; int A[N]; int main(){ int n; cin>>n; int ans = 0; for(int i=0;i<n;i++) scanf("%d",A+i); for(int i=n-1;i>=0;){ int j=i-1; for(;j>=0;j--){ if(A[j]<A[i]) ans+=A[i]-A[j]; else break; } i = j; } printf("%d\n",ans); return 0; }
hiho 1604 - 股票價格,思維題