题意简述:

给定⼀个 D D D天的 S S S只股票价格矩阵,以及初始资⾦ M M M;每次买股票只能买某个股票价格的整数倍,可以不花钱,约定获利不超过 500000 500000 500000。最⼤化你的 总获利。

题目分析:

首先我们要知道此题的详细意图:每天都可以用你手中有的钱买入股票,数量不限,也可以卖出你自己的股票,所得的收益或价值已经在 D ∗ S D*S D∗S的矩阵中给出。要求在最后一天结束后得到的钱最多。

题解:

其实我们可以发现:对于每一天只要最大化你的收益就可以达成目的。然后问题就转换为求每一天的股票交易情况了。又知道每个股票可以无限量的购买(当然价值和不多于手中的钱),显然,就是一个完全背包。

其实题目中的获利不超过 500000 500000 500000已经暗中提示了DP等算法的使用,因为给出一个不是由 i n t int int到 l o n g long long l o n g long long 的数据范围的改变一定是为数组内存准备的。

⾸先每天结束之后剩下的钱尽量多肯定是最优的。
因为连续持有股票相当于每天买完以后,第⼆天
卖掉然后再买。所以就可以每天做⼀次完全背包。
时间复杂度 O ( 700000 ∗ D ∗ S ) O(700000*D*S) O(700000∗D∗S)。

接下来就不再赘述了,其他部分会在代码中注明,看代码:

代码:

#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
int a[61][21],f[500005];
int main()
{int s,d,m;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 k=2;k<=d;k++){memset(f,0,sizeof(f));int maxx=0;for(int i=1;i<=s;i++){for(int j=a[i][k-1];j<=m;j++)//每次循环到前一天当前位置的股票交易价格。{f[j]=fmax(f[j],f[j-a[i][k-1]]+a[i][k]-a[i][k-1]);//第一种情况是不买,第二种就是买:要价格减去买入所花的钱再加上今天和昨天的价格差,因为如果不卖出相当于卖出再买入maxx=fmax(f[j],maxx);//取出一天股票的最大值}}m+=maxx;//累加收益}printf("%d",m);return 0;
}

[USACO09FEB]股票市场Stock Market相关推荐

  1. 1578: [Usaco2009 Feb]Stock Market 股票市场

    1578: [Usaco2009 Feb]Stock Market 股票市场 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 414  Solved:  ...

  2. 【论文 CCF C】Multi-DQN: An ensemble of Deep Q-learning agents for stock market forecasting

    Expert Systems With Applications 164 (2021) 113820 (CCF C) 论文链接:Multi-DQN: An ensemble of Deep Q-lea ...

  3. 【文献阅读】Applications of deep learning in stock market prediction: Recent progress

    Applications of deep learning in stock market prediction: Recent progress 1 本文相关介绍 本文为 2021 年 CCF-C ...

  4. 【论文研读】【金融】Predicting the direction of stock market prices using random forest

    [论文研读]Predicting the direction of stock market prices using random forest Abstract Key Words 1. Intr ...

  5. Daily News for Stock Market Prediction(股市预测日报)

    原文: Daily News for Stock Market Prediction Using 8 years daily news headlines to predict stock marke ...

  6. HOW I MADE $2,000,000 IN THE STOCK MARKET

    FREE COURSE - $997 VALUE  "HOW I MADE $2,000,000 IN THE STOCK MARKET" - THE TRUE NICOLAS D ...

  7. BZOJ1578: [Usaco2009 Feb]Stock Market 股票市场

    S<=50只股票D<=10天的价格给出,求第一天开始用n<=200000元最后能得到的最大钱数,保证答案<=500000. 做D次完全背包即可,每次做完把dp数组清空. 1 # ...

  8. 【题解】 Stock Market 股票市场

    题目描述 尽管奶牛们天生谨慎,她们仍然在住房抵押信贷市场中受到打击,现在她们开始着手于股市. Bessie很有先见之明,她不仅知道今天 S ( 2 < = S < = 50 ) S (2 ...

  9. Stock Market(luogu 2938)

    题目描述 Despite their innate prudence, the cows took a beating in the home mortgage market and now are ...

最新文章

  1. 从宏观经济状况看目前股市
  2. 2017-2018-2 20179204《网络攻防实践》第八周学习总结
  3. SVN switch 用法详解
  4. java实现rsa欧几里得算法求d_RSA 加密算法的 java 实现
  5. springboot连接数据库报错testWhileIdle is true, validationQuery not set
  6. 长辈退休金很高是什么体验?
  7. 前端开发-Weex初试
  8. 咸鱼前端—html常用标签
  9. 员工股权激励方案设计
  10. java技术 新 阶段作业,北邮网院web技术阶段作业
  11. LOJ #3049. 「十二省联考 2019」字符串问题
  12. Terraform的vpc网络自动化配置解决方案
  13. springboot+阿里云短信 找不到本地包 解决
  14. 算法笔记(1)-常用推荐算法总结
  15. 【OpenGL】画线算法
  16. Unreal教学(9)——虚幻引擎名词解释(Unreal Engine 4 Terminology)
  17. LeetCode12. 整数转罗马数字
  18. 高通平台死机例子(log不足或无明显错误)
  19. 注册机偷懒写法2、之直接调用源程序的函数
  20. Promise.all 方法详解

热门文章

  1. EasyUI–常用控件之按钮/搜索框/密码框/文件框/数字框/日期时间选择框
  2. MediaTypeListWidget-insertItem 添加的label没有填充单元格
  3. leetcode 多线程编程
  4. Vue - 图片浏览组件v-viewer
  5. 10秒钟登录12306
  6. python边缘检测画简笔画_OpenCV-Python 边缘检测
  7. allatori简单使用教程
  8. 用latex和beamer做幻灯片
  9. 时尚界新宠,高级穿搭1+1
  10. python是面对什么的高级语言_Python语言是一种高级语言。