题目描述

2130年,股神巴菲特投胎了!他投胎到你身上!

你作为股神转世,能力比原股神还要强,你可以预测到今后n天的股价。假设刚开始你的手上有1元钱,你想知道n天后你最多可以赚到多少钱。作为股神转世,你准备自己编程算答案。

每一天你都可以买股票、卖股票,当然也可以什么都不干。(到那时股票可以买卖分数股)

输入输出格式

输入格式

第一行一个数n(n≤1000000)。接下来n行,每行一个小数,代表每天的股价。

输出格式

一个数,代表最多能赚多少钱。(答案四舍五入,保留整数)

样例

INPUT

2

2.00

3.00

OUTPUT

2

HINT

样例解释 Sample Explanation:

第一天有现金1元,股价2.00元,可以买入0.5股;第二天股价3.00元,全部卖出,得现金:0.5*3.00=1.50元,四舍五入后金额为2。

SOLUTION

贪心

一开始我还想一堆乱七八糟的解法,单调性,最长子序列,什么价格一下跌就卖啥的,但是都觉得很奇怪,都可以轻松被自己hack掉,于是瞄了一眼AC的人的评测状态,woc,代码都这么短的吗???但还是没有思路。

最后还是戳了题解看。非常简单的做法。

我们保存两个值,一个是当前可以赚的钱数的最大值,另一个是当前可以持有股份的最大值。因为我们的操作非常单一,只有买进,卖出两种。所以我们要用手上的钱去在合适的时候买进卖出利滚利滚利滚利。

本题利用到了“可以买入,卖出,或者什么也不干”这个性质,于是用最优值更新相当于就是从上一次更新到下一个最优值的出现期间不做任何操作,从而保证可以用最优创造一个新的最优。

#include <iostream>
#include <cstdio>
using namespace std;
#define Min(a,b) ((a<b)?a:b)
#define Max(a,b) ((a>b)?a:b)
double hv=0,ans=1;
int main(){
int i,n;
scanf("%d",&n);
for (i=1;i<=n;++i){double x;
scanf("%lf",&x);
double rec=Max(ans,hv*x);//记录如果现在全部卖出的话的钱数
hv=Max(hv,ans/x);ans=rec;//记录如果用历史最大钱数来买的话能卖多少
}
printf("%0.0lf",ans);
return 0;
}

GYOJ_1812_股票(stock)的更多相关文章

  1. 六.Spring与RabbitMQ集成--stock trading(股票交易系统)

    周末继续写博客,算起来,关于rabbitMQ这个中间件的研究已经持续至两个星期了,上一篇文章使用sring amqp实现了同步和异步的消息接收功能.这一节继续实用spring amqp实现一个股票交易 ...

  2. 使用JSON数据格式模拟股票实时信息

    JQueryStock.html <!DOCTYPE html> <head> <meta charset="UTF-8"> <title ...

  3. Spring 事务详解

    实现购买股票案例: 一.引入JAR文件: 二.开始搭建分层架构---创建账户(Account)和股票(Stock)实体类 Account: ? 1 2 3 4 5 6 7 8 9 10 11 12 1 ...

  4. Spring事务之详解--三种实现方式

    实现购买股票案例: 一.引入JAR文件: 二.开始搭建分层架构---创建账户(Account)和股票(Stock)实体类 Account: /* * 账户 */ public class Accoun ...

  5. Spring 事务

    实现购买股票案例: 一.引入JAR文件: 二.开始搭建分层架构---创建账户(Account)和股票(Stock)实体类 Account: 1 2 3 4 5 6 7 8 9 10 11 12 13 ...

  6. 一些sql语句的常用总结(重要)

    select primary_flag from tc_contact where primary_flag !=0 select dept_id,dept_name,tree_level,tree_ ...

  7. Spring事务-三种实现方式

    一.引入JAR文件: 二.开始搭建分层架构---创建账户(Account)和股票(Stock)实体类 Account: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...

  8. DL4J之CNN对今日头条文本分类

    一.数据集介绍 数据来源:今日头条客户端 数据格式如下: 6551700932705387022_!_101_!_news_culture_!_京城最值得你来场文化之旅的博物馆_!_保利集团,马未都, ...

  9. Python1--简介及基础语法

    0. 简介 Python易于学习的编程语言,有很多现成的第三方库可以调用,不用重复造轮子,老话说:"人生苦短,我用 Python" 1. 安装Python Mac:brew ins ...

随机推荐

  1. Ackermann函数

    Ackermann函数定义如下: 若m=0,返回n+1. 若m>0且n=0,返回Ackermann(m-1,1). 若m>0且n>0,返回Ackermann(m-1,Ackerman ...

  2. SRS|Stratified sampling|系统抽样|Cluster sampling|multistage sampling|

    生物统计学 总体和抽样 抽样方法: ========================================================= 简单随机抽样SRS:随机误差,系统误差 标准误, ...

  3. C++ 静态成员变量、成员函数

    1.每个变量,都有自己的属性. 2.用 static 定义的成员变量.成员函数 ,是属于所有变量的. 3.关键字 static 可以用于说明一个类的成员. 4.把一个类的成员说明为 static 时, ...

  4. CSP模拟赛游记

    时间:2019.10.5 考试时间:100分钟(连正式考试时间的一半还没有到)题目:由于某些原因不能公开. 由于第一次接触NOIinux系统所以连怎么建文件夹,调字体,如何编译都不知道,考试的前半小时 ...

  5. 关于sql更新最后一个逗号的去除或则最后的and的去除

    去除最后的逗号substr_replace($update_sql ,"",-1);去除最后的and substr_replace($update_sql ,"" ...

  6. Python笔记_第四篇_高阶编程_GUI编程之Tkinter_1.使用Python进行GUI编程的概述

    1. GUI概述: GUI全称为Graphical User Interface,叫做图形用户界面,也是一种交互方式(Interaction).早期计算机使用的命令行界面(command-line i ...

  7. php 接口中常用的aes加密

    <?php /** * Aes 对称加密 */ class Aes { public $key; public function __construct($key){ $this->key ...

  8. SQL服务器攻击总结-注入

    查库选择convert(int,db_name())sysobjects 查当前表id,从sysobjects中选择id,xtype ='u'//此处要记录下数据库的id syscolumns查表对应 ...

  9. K 破忒头的匿名信(ac自动机+小dp)

    题:https://ac.nowcoder.com/acm/contest/4010/K 题意:用一些模式串凑成一个目标串,每个模式串有消耗,问组合的最小消耗,或不能组成输出-1: 分析:典型的AC自 ...

  10. 基础服务系列-Jupyter Install TensorFlow

    TensorFlow is a deep learning framework that provides an easy interface to a variety of functionalit ...