【BZOJ1578】【USACO2009Feb】股票市场 背包DP
2017-11-03 14:18
567 查看
题目大意
告诉你n只股票在这m天内的价格,给你s元的初始资金,问你m天后你最多拥有多少钱。n≤50,m≤10,s≤200000,答案≤500000
题解
首先我们可以认为第i天买的所有股票都会在第i+1天卖出(如果不卖出就可以看成卖出再买入)。那么我们可以把第i天的价格看成体积,把第i+1天的价格−第i天的价格看成价值,做m−1次完全背包即可。
时间复杂度:O(nms)
代码
#include<cstdio> #include<cstring> #include<algorithm> #include<cstdlib> #include<ctime> #include<utility> #include<cmath> #include<functional> using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair<int,int> pii; typedef pair<ll,ll> pll; void sort(int &a,int &b) { if(a>b) swap(a,b); } void open(const char *s) { #ifndef ONLINE_JUDGE char str[100]; sprintf(str,"%s.in",s); freopen(str,"r",stdin); sprintf(str,"%s.out",s); freopen(str,"w",stdout); #endif } int f[500010]; int a[110][110]; int main() { int n,m,u; scanf("%d%d%d",&n,&m,&u); int i,j,k; for(j=1;j<=n;j++) for(i=1;i<=m;i++) scanf("%d",&a[i][j]); for(i=2;i<=m;i++) { memset(f,0,sizeof f); for(j=1;j<=n;j++) { int v=a[i][j]-a[i-1][j],w=a[i-1][j]; if(v<0) continue; for(k=w;k<=u;k++) f[k]=max(f[k],f[k-w]+v); } u+=*max_element(f+1,f+u+1); } printf("%d\n",u); return 0; }
相关文章推荐
- BZOJ 1578: [Usaco2009 Feb]Stock Market 股票市场( 背包dp )
- bzoj1578[Usaco2009 Feb]Stock Market 股票市场 完全背包
- [BZOJ1578] [Usaco2009 Feb]Stock Market 股票市场(DP)
- bzoj 1578: [Usaco2009 Feb]Stock Market 股票市场【背包】
- BZOJ 1578 [Usaco2009 Feb]Stock Market 股票市场
- BZOJ1578: [Usaco2009 Feb]Stock Market 股票市场
- bzoj1578 [Usaco2009 Feb]Stock Market 股票市场
- 【BZOJ】1578: [Usaco2009 Feb]Stock Market 股票市场
- 1578: [Usaco2009 Feb]Stock Market 股票市场
- bzoj 3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛(dp+前缀和)
- 1578: [Usaco2009 Feb]Stock Market 股票市场
- BZOJ 3407: [Usaco2009 Oct]Bessie's Weight Problem 贝茜的体重问题 背包dp
- BZOJ 3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛( dp )
- [BZOJ3398][Usaco2009 Feb]Bullcow 牡牛和牝牛(dp)
- BZOJ1578 USACO 2009 Feb Gold 2.Stock Market
- bzoj 3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛(DP)
- bzoj 3398 [Usaco2009 Feb]Bullcow 牡牛和牝牛 (dp+前缀)
- 【bzoj1578/Usaco2009 Feb】Stock Market 股票市场——完全背包
- 1578: [Usaco2009 Feb]Stock Market 股票市场
- bzoj 3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛【dp】