zoukankan      html  css  js  c++  java
  • (序列型dp)买股票问题

    给出一个股票 n 天内每天的价格。

    在某天买入后,可在第二天及后任意天卖出,允许买入卖出多次买卖,但只允许一笔交易,买入卖出后才可以再买。

    求可以获取的最大利润?

    输入样例:

    6

    7 1 5 3 1 4

    输出样例:

    7

    思路:只有后一天比前一天股价高,那么就值得在前一天买入第二天卖掉,并且可以由局部最优化推到全局最优化

    #include<iostream>
    #include<string.h>
    #include<math.h>
    
    using namespace std;
    int n,m,v; 
    long ans;
    int mod=1e9+7;
    int dp[105],aa[105];
    bool vis[105]; 
    int main(){
        cin>>n;
        for(int i=0;i<n;i++){
            cin>>aa[i];
        }
        for(int i=0;i<n-1;i++){
            if(aa[i+1]>aa[i]){
                ans+=(aa[i+1]-aa[i]);//只要后一天比前一天价格高,前一天就可以买 
            }
        }
        cout<<ans;
    }
  • 相关阅读:
    SQL中存储过程与自定义函数的区别
    内置函数
    正则表达式
    HTML发展史
    触发器
    事务
    视图
    索引的使用
    存储过程和自定义函数的区别
    游标用法
  • 原文地址:https://www.cnblogs.com/xusi/p/12508854.html
Copyright © 2011-2022 走看看