【USACO】2009 Feb Stock Market 股票市场
2016-11-08 08:56
218 查看
Stock Market 股票市场
Description尽管奶牛们天生谨慎,她们仍然在住房抵押信贷市场中大受打击,现在她们准备在股市 上碰碰运气。贝西开挂了,她知道S只股票在今后D天内的价格。
假设她一开始有M元钱,怎么操作才能在D天后赚到最多的钱?股票在市场上的供应量 可以看成是无限的,但买卖股票必须以整数为最小交易单位。
举一个牛市的例子。假设贝西有10元本金,股票价格如下:
股票 今天的单价 明天的单价 后天的单价
A 10 15 15
B 13 11 20
最赚钱的做法是:今天买入A股1张,到明天把它卖掉并且买入B股1张,然后在后天卖掉B股,此时贝西手上会有24元。
Input Format
第一行:三个用空格分开的整数:S,D和M,2≤S≤50,2≤D≤10,1≤M≤200000
第二行到第S+1行:第s+1行表示第s种股票在第1 天到第D天的售价,1≤售价≤1000
Output Format
第一行:D天后能赚的最多钱数,保证这个数字不超过500000
Sample Input
2 3 10
10 15 15
13 11 20
Sample Output
24
分析
一个O(SDM) 的动规,本以为过不了的,然而实际上卡卡还是能过。
分析一下题目发现,虽说可以间隔好几天再卖股票,但我们可以把中间不买不卖的看作买了又卖,这样动规方程就只要从前一天转移过来即可。
F[i]表示手中有购买价为i元的股票(可能是今天买的,也可能是之前买的),在明天把这些卖出去再加上现金最多为多少。(有点绕,详见动规方程)
#include <queue> #include <stack> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int S,D,M,A[51][11],F[500001]; int main(){ freopen("in.txt","r",stdin); freopen("out.txt","w",stdout); scanf("%d%d%d",&S,&D,&M); for (int i=1;i<=S;i++) for (int j=1;j<=D;j++) scanf("%d",&A[i][j]); for (int i=1;i<=D-1;i++){ F[0]=M,M=0; for (int j=0;j<=F[0];j++){ for (int k=1;k<=S;k++){ if (j-A[k][i]>=0 && F[j-A[k][i]]-A[k][i]+A[k][i+1]>F[j]) F[j]=F[j-A[k][i]]-A[k][i]+A[k][i+1]; } if (M<F[j]) M=F[j]; } } printf("%d",M); fclose(stdin); fclose(stdout); return 0; }
相关文章推荐
- USACO 2009 Feb StockMarket
- bzoj1578[Usaco2009 Feb]Stock Market 股票市场 完全背包
- [BZOJ1578] [Usaco2009 Feb]Stock Market 股票市场(DP)
- 【BZOJ1578】【USACO2009Feb】股票市场 背包DP
- 1578: [Usaco2009 Feb]Stock Market 股票市场
- 【BZOJ】1578: [Usaco2009 Feb]Stock Market 股票市场
- BZOJ 1578 [Usaco2009 Feb]Stock Market 股票市场
- 1578: [Usaco2009 Feb]Stock Market 股票市场
- bzoj 1578: [Usaco2009 Feb]Stock Market 股票市场【背包】
- [USACO 2009 Feb] 股票市场
- 1578: [Usaco2009 Feb]Stock Market 股票市场
- BZOJ1578: [Usaco2009 Feb]Stock Market 股票市场
- bzoj1578 [Usaco2009 Feb]Stock Market 股票市场
- BZOJ 1578: [Usaco2009 Feb]Stock Market 股票市场( 背包dp )
- BZOJ1577 [Usaco2009 Feb]庙会捷运Fair Shuttle
- bzoj 1579: [Usaco2009 Feb]Revamping Trails 道路升级 优先队列+dij
- BZOJ1579 [Usaco2009 Feb]Revamping Trails 道路升级
- BZOJ3397: [Usaco2009 Feb]Surround the Islands 环岛篱笆
- 【bzoj3398】[Usaco2009 Feb]Bullcow 牡牛和牝牛 dp
- BZOJ 1579: [Usaco2009 Feb]Revamping Trails 道路升级( 最短路 )