首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
bzoj 1578: [Usaco2009 Feb]Stock Market 股票市场【背包】
】的更多相关文章
BZOJ 1578: [Usaco2009 Feb]Stock Market 股票市场( 背包dp )
我们假设每天买完第二天就卖掉( 不卖出也可以看作是卖出后再买入 ), 这样就是变成了一个完全背包问题了, 股票价格为体积, 第二天的股票价格 - 今天股票价格为价值.... 然后就一天一天dp... --------------------------------------------------------------- #include<cstdio> #include<cstring> #include<algorithm> #include<iostre…
bzoj 1578: [Usaco2009 Feb]Stock Market 股票市场【背包】
参考:https://blog.csdn.net/mars_ch/article/details/53011234 我背包真是好不熟练啊-- 第一天买了第三天卖相当于第一天买了第二天卖第二天再买第三天再卖.所以问题转化成完全背包,每天转移即可 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; const int N=55…
1578: [Usaco2009 Feb]Stock Market 股票市场
1578: [Usaco2009 Feb]Stock Market 股票市场 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 414 Solved: 199[Submit][Status][Discuss] Description 尽管奶牛们天生谨慎,她们仍然在住房抵押信贷市场中受到打击,现在她们开始着手于股市. Bessie很有先见之明,她不仅知道今天S (2 <= S <= 50)只股票的价格,还知道接下来一共D(2 <= D <…
【BZOJ】1578: [Usaco2009 Feb]Stock Market 股票市场
[题意]给定s个股票和d天,给出价格矩阵s*d,每天可以买入或卖出整数倍股票,初始资金m,求最大利益.m<=200000,s<=50,d<=10. [算法]完全背包 [题解]关键在于转化:第一天买入-第三天卖出,相当于,第一天买入-第二天卖出-第二天买入-第三天卖出.那么买卖股票就变成相邻两天的事情了. 对于每一天,就是完全背包,总重量为资金,重量为当天价格,价值为第二天价格-当天价格. f[i][j]表示前i个股票使用资金j能获得的最大收益. f[i][j]=f[i-1][j-A[i]…
[bzoj1578][Usaco2009 Feb]Stock Market 股票市场_完全背包dp
Stock Market 股票市场 bzoj-1578 Usaco-2009 Feb 题目大意:给定一个$S\times D$的大矩阵$T$,其中$T[i][j]$表示第i支股票第j天的价格.给定初始资金$M$,求最后的最大收益. 注释:$1\le S\le 50$,$1\le D\le 10$,$1\le M\le 2\cdot 10^5$,$1\le val_i\le 10^4$. 想法: 我们如果前几天买股票然后过几天卖掉等价于第一天买第二天卖掉然后持续到今天. 也就是持续的买卖到今天.…
[Usaco2009 Feb]Stock Market 股票市场 完全背包
Code: #include<cstdio> #include<algorithm> #include<iostream> #include<cstring> #include<stack> #include<string> using namespace std; void setIO(string a){ freopen((a+".in").c_str(),"r",stdin),freope…
bzoj1578 [Usaco2009 Feb]Stock Market 股票市场
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1578 [题解] 由于连续买相当于每天买,第二天卖,然后再买.所以每天最后钱尽量多一定是最优的. 所以对于m天,每天做一次O(n*70w)的完全背包dp即可. # include <stdio.h> # include <string.h> # include <iostream> # include <algorithm> // # include &…
[BZOJ1578] [Usaco2009 Feb]Stock Market 股票市场(DP)
传送门 可以看出 第一天买,第三天卖 == 第一天买,第二天卖完再买,第三天卖 所以我们只考虑前一天买,后一天卖即可 那么有按天数来划分 f[i][j]表示前i天,共有j元,最大的盈利 第一维可以省去 那么有两种选择,不买 或者 前一天买,后一天卖 #include <cstdio> #include <cstring> #include <iostream> #define N 500001 #define max(x, y) ((x) > (y) ? (x)…
Bzoj 1579: [Usaco2009 Feb]Revamping Trails 道路升级 dijkstra,堆,分层图
1579: [Usaco2009 Feb]Revamping Trails 道路升级 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1573 Solved: 428[Submit][Status][Discuss] Description 每天,农夫John需要经过一些道路去检查牛棚N里面的牛. 农场上有M(1<=M<=50,000)条双向泥土道路,编号为1..M. 道路i连接牛棚P1_i和P2_i (1 <= P1_i <= N;…
BZOJ 1579: [Usaco2009 Feb]Revamping Trails 道路升级( 最短路 )
最短路...多加一维表示更新了多少条路 ---------------------------------------------------------------------------------- #include<cstdio> #include<algorithm> #include<queue> #include<cstring> #include<iostream> #define rep( i , n ) for( int…