当前位置: 首页 > 编程日记 > 正文

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

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

Time Limit: 10 Sec  Memory Limit: 64 MB
Submit: 414  Solved: 199
[Submit][Status][Discuss]

Description

尽管奶牛们天生谨慎,她们仍然在住房抵押信贷市场中受到打击,现在她们开始着手于股市。 Bessie很有先见之明,她不仅知道今天S (2 <= S <= 50)只股票的价格,还知道接下来一共D(2 <= D <= 10)天的(包括今天)。 给定一个D天的股票价格矩阵(1 <= 价格 <= 1000)以及初始资金M(1 <= M <= 200,000),求一个最优买卖策略使得最大化总获利。每次必须购买股票价格的整数倍,同时你不需要花光所有的钱(甚至可以不花)。这里约定你的获利不可能超过500,000。 考虑这个牛市的例子(这是Bessie最喜欢的)。在这个例子中,有S=2只股票和D=3天。奶牛有10的钱来投资。 今天的价格 | 明天的价格 | | 后天的价格 股票 | | | 1 10 15 15 2 13 11 20   以如下策略可以获得最大利润,第一天买入第一只股票。第二天把它卖掉并且迅速买入第二只,此时还剩下4的钱。最后一天卖掉第二只股票,此时一共有4+20=24的钱。

Input

* 第一行: 三个空格隔开的整数:S, D, M

* 第2..S+1行: 行s+1包含了第s只股票第1..D天的价格

Output

* 第一行: 最后一天卖掉股票之后最多可能的钱数。

Sample Input

2 3 10
10 15 15
13 11 20

Sample Output

24

HINT

Source

Gold

题解:(我会说我一开始想到了DP?甚至想过BZOJ3359一样建图来求最短路呵呵)

其实还是DP。。。一个略有隐藏的背包,将前一天的价格视为价格,后面一天的视作价值(政治阴魂不散啊啊啊有木有),建立起一个完全背包问题,然后慢慢玩(本程序中b[i]表示当前一天钱还剩i时能创造的最大价值,然后递推下去)

 1 /**************************************************************
 2     Problem: 1578
 3     User: HtotBug
 4     Language: Pascal
 5     Result: Accepted
 6     Time:9176 ms
 7     Memory:4140 kb
 8 ****************************************************************/
 9  
10 var
11         i,j,k,l,n,m,tot:longint;
12         a:array[0..105,0..20] of longint;
13         b:Array[0..1000005] of longint;
14 function max(x,y:longint):longint;
15     begin
16         if x>y then max:=x else max:=y;
17     end;
18 begin
19         readln(n,m,l);
20         for i:=1 to n do
21                 for j:=1 to m do
22                         read(a[i,j]);
23         tot:=l;
24         for i:=2 to m do
25                 begin
26                         for j:=0 to tot do b[j]:=j;
27                         for j:=1 to n do
28                                 begin
29                                         if a[j,i]>a[j,i-1] then
30                                             for k:=a[j,i-1] to tot do b[k]:=max(b[k-a[j,i-1]]+a[j,i],b[k]);
31                                 end;
32                         tot:=b[tot];
33                 end;
34         writeln(tot);
35 end.

转载于:https://www.cnblogs.com/HansBug/p/4398706.html

相关文章:

代码部分分区域突破

代码结构 board部分 在这里主要是用到了里面的px4部分&#xff0c;里面包含各种编译版本&#xff0c;主要现在用的就是fmu-v5版本&#xff0c;打开后里面需要在default.cmake里面找到MODULES,在下面添加自己写的文件名字。 这里是有四个串口&#xff0c;如果设备想要获取信息…

用Python和项目进行机器学习(初学者) Machine Learning A-Z with Python with Project (Beginner)

初学者用Python完成机器学习课程 你会学到: Python上的主机器学习 进行有力的分析 做出准确的预测 制作健壮的机器学习模型 将机器学习用于个人目的 建立一支强大的机器学习模型大军&#xff0c;并知道如何将它们结合起来解决任何问题 使用K-均值聚类、支持向量机(SVM)、KNN、…

操作系统学习2:操作系统的发展和概览

操作系统的发展和概览 手工阶段&#xff08;电子管时代&#xff09; 特点&#xff1a; 用户独占全机 用户独占计算机所有资源&#xff0c;资源利用率低CPU等待用户 计算前&#xff0c;手工装入纸带或卡片&#xff1b;计算完成后&#xff0c;手工卸取纸带或卡片&#xff1b;C…

java内存数据管理

准确的说应该是java8以前的内存管理方式 区别在永久代(方法区)上 public class RamManager {//1.a存储于永久代public static int a 1;private String str;private int x;private AA aaa;  // method_1方法位于栈中// temp1保存的是引用地址&#xff0c;在栈中public void me…

职责链模式(Chain of Responsibility)(对象行为型)

1.概述 你去政府部门求人办事过吗&#xff1f;有时候你会遇到过官员踢球推责&#xff0c;你的问题在我这里能解决就解决&#xff0c;不能解决就推卸给另外个一个部门&#xff08;对象&#xff09;。至于到底谁来解决这个问题呢&#xff1f;政府部门就是为了可以避免屁民的请求与…

Ubuntu使用QCustomPlot简介

参考网址 https://blog.csdn.net/zyc_csdn/article/details/78840376 显示实时数据 https://blog.csdn.net/qq_28877125/article/details/102948574?ops_request_misc&request_id&biz_id102&utm_termQcustomPlot%E4%BD%BF%E7%94%A8%E5%AE%9E%E6%97%B6%E5%8A%A8%E6…

Python入门基础教程 Working with Python – Introductory Level

学会像计算机科学家一样用世界上最流行的编程语言之一思考 你会学到: 学习Python的基础知识&#xff0c;Python是当今最流行的编程语言之一 通过编写一个基于文本的冒险游戏来学习Python语言的语法 了解面向对象编程和过程编程的区别 学会像计算机科学家一样思考:做决定、循环…

MyBatis复习笔记5:MyBatis代码生成器

前言&#xff1a;做过几个项目之后深感代码生成器的便捷&#xff0c;有了它我们可以少写许多重复的、基础的代码&#xff0c;如基本的增删改查的代码&#xff0c;我们可以交给代码生成器生成&#xff0c;而我们只需要专注于业务逻辑上的代码即可。 MyBatis Generator MyBatis官…

QT报错“qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method”

出现错误找这里&#xff1a;https://blog.csdn.net/u010168781/article/details/85632637

数据科学Python训练营课程:从初级到高级 Python for Data Science Bootcamp Course:Beginner to Advanced

通过代码实现、示例等&#xff0c;掌握您需要了解的关于Python、Pandas和Numpy的一切&#xff01; 你会学到什么 通过代码实现、示例等&#xff0c;掌握您需要了解的关于Python、Pandas和Numpy的一切&#xff01; 学习高级Python模块和复杂功能&#xff0c;如Python装饰器、生…

MyBatis复习笔记6:MyBatis缓存机制

MyBatis缓存机制 MyBatis 包含一个非常强大的查询缓存特性&#xff0c;它可以非常方便地配置和定制。缓存可以极大的提升查询效率。MyBatis系统中默认定义了两级缓存。一级缓存和二级缓存。 默认情况下&#xff0c;只有一级缓存&#xff08;SqlSession级别的缓存&#xff0c;也…

JAVA语法基础 3

一.实战演练 1.编写Java程序&#xff0c;声明2个int型变量&#xff0c;运用3元远算符判断两个变量是否相等&#xff0c;若不相等&#xff0c;求出两个数中较大的。 public class 练习题 { public static void main(String[] args) { int a1&#xff1b; int b2&#xff1b; Sys…

堆排序示例-java

package Heapsort; public class TestMain { /** * 调整堆 * param array 数组 * param i 调整的元素i * param length 堆元素个数 */ public static void adaptationArray(int[] array,int i, int length) { // 当前元素 int cur i; while(2*cur2<length) { int curValue …

创建新的ros工作空间

链接:https://www.cnblogs.com/ailitao/p/11047312.html

Blender左轮手枪制作教程

Artstation – Revolver Tutorial – Industry Ready Weapon & Attachment Creation for Video Games 持续时间19h 包含项目文件 1280X720 MP4 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09; 大小解压后&#xff1a;16.6G 标题:艺术站-…

设计模式学习1:设计模式简述和设计模式原则

设计模式简述 什么是设计模式&#xff1f; 软件工程中&#xff0c;设计模式&#xff08;design pattern&#xff09;是对软件设计中普遍存在&#xff08;反复出现&#xff09;的各种问题&#xff0c;所提出的解决方案。 设计模式的目的&#xff1a; 代码高可用&#xff08;相…

mysql 常用sql与命令

1. 如何禁用和启用mysql外键约束 SET foreign_key_checks 0; 禁用外键SOURCE dump_file_name; 进行SQL查询 SET foreign_key_checks 1; 恢复外键 2. 把字段改为自动增长 SET foreign_key_checks 0; ALTER TABLE zz_news MODIFY COLUMN id BIGINT(20) NOT NULL AUTO…

需要恢复中断状态的一个场景

没有恢复中断状态时&#xff0c;在Step1执行期间发生中断&#xff0c;Step2操作还会继续&#xff0c;这就存在让数据出现不一致的风险&#xff1a; import java.util.concurrent.TimeUnit;import org.slf4j.Logger; import org.slf4j.LoggerFactory;/*2015-4-9*/ public class …

新建ROS工作工作空间

空间解释&#xff1a; src:代码空间&#xff08;放置功能包&#xff1a;代码、配置文件、.launch文件&#xff09; build:编译空间&#xff08;编译文件&#xff1a;编译过程中产生的&#xff0c;不必去关心的&#xff09; devel:开发空间&#xff08;放置编译生成的可执行文件…

用Rhino V7建造机甲学习教程 Building a Mecha using Rhino V7

MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#xff0c;44.1 KHz&#xff0c;2 Ch 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09; |时长:45节课(16h 55m) |大小解压后:10.8 GB 一级和二级初级和中级 你会学到: 通过一个手把手的项目学…

Nginx学习2:Nginx的安装配置和常用命令

Nginx的安装、常用命令和配置文件 在Linux系统安装Nginx 我们使用虚拟机来完成在Linux系统安装Nginx的步骤&#xff0c;在这里我选择的是CentOS7的Linux系统&#xff0c; 1、到官网下载Nginx 官网地址&#xff1a;http://nginx.org/en/download.html 我们选择稳定版的直接下…

鼠标悬浮指针变手

cursor:pointer; //鼠标悬浮样式转载于:https://www.cnblogs.com/GerryOfZhong/p/5219365.html

linux设备驱动第五篇:驱动中的并发与竟态

目录[-] 综述信号量与互斥锁Completions 机制自旋锁其他的一些选择不加锁算法原子变量与位操作seqlock&#xff08;顺序锁&#xff09;读取-拷贝-更新&#xff08;RCU&#xff09;小结综述 在上一篇介绍了linux驱动的调试方法&#xff0c;这一篇介绍一下在驱动编程中会遇到的并…

Ubuntu16.04运行.run文件

QT配置ROS环境,运行.run文件—参考链接: https://blog.csdn.net/have_fun_/article/details/88242536

终极AutoCAD大师班:成为AutoCAD专家

Ultimate AutoCAD Masterclass: Become an Expert in AutoCAD 流派:电子学习| MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#xff0c;44.1 KHz 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09;|大小:6.39 GB |时长:9h 58m 使用AutoCAD学习…

《深入理解Java虚拟机》(第二版)学习1:JVM的内存划分

运行时数据区 先来一张图描述一下 JVM 的内存划分 PS&#xff1a;自己画的&#xff0c;丑是难免丑了点… 程序计数器&#xff08;Program Counter Register&#xff09; 程序计数器&#xff08;Program Counter Register&#xff09;是一块较小的内存空间&#xff0c;它可以…

下一个亿万市场:企业级SaaS服务谁能独领风骚

注&#xff1a;SaaS是Software-as-a-Service(软件即服务)的简称&#xff0c;一种完全创新的软件应用模式&#xff0c;简单来说SaaS即为提供商基于互联网为企业提供软件服务。 ​对中小型企业来说&#xff1a;SaaS是采用先进技术&#xff0c;它消除了企业购买、构建和维护基础设…

inline-block在ie6中的经典bug

众所周知&#xff0c;给元素设置 inline-block &#xff0c;可以让ie下的元素出发layout:1。 但是&#xff0c;当给元素设置 inline-block 后&#xff0c;在另外一个class 样式&#xff08;非设置inline-block的class样式&#xff09;重置为inline或者block。对于ie6下&#xf…

各系统QT安装ROS后不显示src问题

刚创建的文件显示如下&#xff1a; 接下来修改这里&#xff1a; 将对勾去掉 之后就可以正常显示&#xff0c;可以添加自己的工作空间以及功能包了

使用脚本完成AutoCAD自动化任务课程

The complete AutoCAD Automation tasks course Using Script MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#xff0c;44.1 KHz&#xff0c;2 Ch 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09; |时长:42节课(4h 25m) |大小:3.35 GB 含课…