1578: [Usaco2009 Feb]Stock Market 股票市场
2017-09-10 15:56
387 查看
题目链接
题目大意:有S种股票,已经知道每一天每一种股票的价格。一共有d天,一开始拥有的钱为m,求最后总共能够拥有多少钱
题解:看上去决策非常复杂,似乎需要枚举购买时间
实际上,只需要将第i天向第i+1天转移就可以了
因为第一天买第三天卖出=第一天买第二天卖,再用原价买回来,然后第三天卖出
做D-1次完全背包即可
我的收获:状态的转移……转移的方向……
题目大意:有S种股票,已经知道每一天每一种股票的价格。一共有d天,一开始拥有的钱为m,求最后总共能够拥有多少钱
题解:看上去决策非常复杂,似乎需要枚举购买时间
实际上,只需要将第i天向第i+1天转移就可以了
因为第一天买第三天卖出=第一天买第二天卖,再用原价买回来,然后第三天卖出
做D-1次完全背包即可
我的收获:状态的转移……转移的方向……
#include <iostream> #include <cstring> #include <cstdio> using namespace std; const int N=55; int S,D,M; int mp ; int f[500005]; void work() { for(int i=1;i<D;i++){ memset(f,0,sizeof(f));//注意清空数组 for(int j=1;j<=S;j++){ int w=mp[i][j],v=mp[i+1][j]; for(int k=w;k<=M;k++) f[k]=max(f[k],f[k-w]+v-w); } M+=f[M]; } printf("%d\n",M); } void init() { cin>>S>>D>>M; for(int i=1;i<=S;i++) for(int j=1;j<=D;j++) scanf("%d",&mp[j][i]); } int main() { init(); work(); return 0; }
相关文章推荐
- BZOJ 1578: [Usaco2009 Feb]Stock Market 股票市场( 背包dp )
- 1578: [Usaco2009 Feb]Stock Market 股票市场
- bzoj 1578: [Usaco2009 Feb]Stock Market 股票市场【背包】
- 1578: [Usaco2009 Feb]Stock Market 股票市场
- bzoj1578 [Usaco2009 Feb]Stock Market 股票市场
- BZOJ1578: [Usaco2009 Feb]Stock Market 股票市场
- [BZOJ1578] [Usaco2009 Feb]Stock Market 股票市场(DP)
- bzoj1578[Usaco2009 Feb]Stock Market 股票市场 完全背包
- BZOJ 1578 [Usaco2009 Feb]Stock Market 股票市场
- 【BZOJ】1578: [Usaco2009 Feb]Stock Market 股票市场
- 【BZOJ1578】【USACO2009Feb】股票市场 背包DP
- BZOJ1578 USACO 2009 Feb Gold 2.Stock Market
- [USACO 2009 Feb] 股票市场
- 【bzoj1578/Usaco2009 Feb】Stock Market 股票市场——完全背包
- 【USACO】2009 Feb Stock Market 股票市场
- BZOJ 3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛( dp )
- bzoj 3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛【dp】
- bzoj 3398 [Usaco2009 Feb]Bullcow 牡牛和牝牛 (dp+前缀)
- bzoj 3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛(dp+前缀和)
- 3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛