股票买卖

题目

阿福该炒股了,然后假设他已经预测到了后几天的股票,要求他最多买卖两次的赚到的最大值。
(注:他只有第一次卖了才能再买)


输入

3
7
5 14 -2 4 9 3 17
6
6 8 7 4 1 -2
4
18 9 5 2

输出

28
2
0


解题思路

用f[i]表示从1到i天买一次的最优解,fm[i]表示从第i天到第n天买一次的最优解,然后枚举一下咯(是的吧)。


代码

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int t,a[100001],maxs,n,min1,max1,min2,max2;
int fm[100001],f[100001];
int main()
{scanf("%d",&t);for (int ti=1;ti<=t;ti++){memset(f,0,sizeof(f));memset(fm,0,sizeof(fm));//清零maxs=0;scanf("%d",&n);for (int i=1;i<=n;i++){scanf("%d",&a[i]);}maxs=a[n];for (int i=n-1;i>=1;i--) {maxs=max(a[i],maxs);f[i]=max(maxs-a[i],f[i+1]);}//求fmaxs=a[1];for (int i=2;i<=n;i++) {maxs=min(a[i],maxs);fm[i]=max(a[i]-maxs,fm[i-1]);}//求fmmaxs=0;for (int i=2;i<n;i++){maxs=max(f[i]+fm[i],maxs);}//求最大值printf("%d\n",max(a[2]-a[1],maxs));}
}



Maximum sum

题目

求两个不重复的子段和,让他最大


输入

1

10
1 -1 2 2 3 -3 4 -4 5 -5

输出

13


解题思路

同上
用f[i]表示从1到i个的最大子段和,fm[i]表示从第i个到第n个的最大子段和,然后枚举一下咯(是的吧)。


代码

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int
t,n,mins,f[50002],s[50002],fm[50002],a[50002];
int main()
{scanf("%d",&t);for (int ti=1;ti<=t;ti++){memset(f,0,sizeof(f));memset(fm,0,sizeof(fm));memset(s,0,sizeof(s));scanf("%d",&n);for (int i=1;i<=n;i++){scanf("%d",&a[i]);s[i]=s[i-1]+a[i];}f[1]=a[1];mins=min(s[1],0);for (int i=2;i<=n;i++){f[i]=max(fm[i-1],s[i]-mins);mins=min(s[i],mins);}//求ffor (int i=n;i>=1;i--){s[i]=s[i+1]+a[i];}fm[n]=a[n];mins=min(s[n],0);for (int i=n-1;i>=1;i--){fm[i]=max(fm[i+1],s[i]-mins);mins=min(s[i],mins);}//求fmmins=-23333333;for (int i=1;i<n;i++){mins=max(mins,f[i]+fm[i+1]);}//求最大值printf("%d\n",mins);}
}

OJ4121 and OJ2968-股票买卖 and Maximun sum【各种dp之6 and 9】相关推荐

  1. codeforces1485 F. Copy or Prefix Sum(dp)

    F. Copy or Prefix Sum Venice technique简要就是懒标记思想. 由于前缀和数组和原数组一一对应,这里我们选择求aia_iai​的前缀和数组的方案数(下面aia_iai ...

  2. 杭电60题--part 1 HDU1003 Max Sum(DP 动态规划)

    最近想学DP,锻炼思维,记录一下自己踩到的坑,来写一波详细的结题报告,持续更新. 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1003 Problem ...

  3. UVA 10891 SUM游戏 DP

    刚看到这个题目不知道怎么个DP法,有点难想到 解法如下 设置dp[i][j]代表i到j这段子序列能获得的最大值,这样,枚举m=min(m,dp[i+1到j][j],dp[i][i到j-1]),m就代表 ...

  4. CF577B Modulo Sum(dp,抽屉原理 | bitset优化 | 二进制优化)

     洛谷链接: Modulo Sum - 洛谷 思路: 明显是一个背包问题,要求子序列和整除m,即sum%m = 0,所以边取模边求和即可.但是朴素做法的时间复杂度是O(nm),会TLE.有三种优化思路 ...

  5. Codeforces1442 D. Sum(dp+分治优化)

    题意: 解法: 首先k<=3e3但t[i]<=1e6, 那么当t[i]>k时多出来的一定取不到, 因此只保留前k个即可.最多只有一个序列不全取,只选一部分, 其他为全选或者全不选.考 ...

  6. HDU 1024:Max Sum Plus Plus(DP)

    Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): ...

  7. Codeforces-33C. Wonderful Randomized Sum

    传送门 N个数,允许将前连续任意个数变化为其相反数,也允许把后连续任意个数变为相反数,求最大和 令dp[i][0]前i个数操作后能得到的最大值,dp[i][1]出去前i-1个数操作后能得到的最大值 注 ...

  8. leetcode 377. Combination Sum IV | 377. 组合总和 Ⅳ(动态规划)

    题目 https://leetcode.com/problems/combination-sum-iv/ 题解 最近养成了上来直奔 Related Topics 的习惯- 确认过眼神,又是个 dp 问 ...

  9. 【UVA - 10891 Game of Sum 】【HRBUST - 1622】 Alice and Bob (区间dp,博弈问题)

    题干: 有一个长度为N的整数序列,Alice和Bob轮流取数,Alice先取.每次玩家只能从左端或者右端 取一个或多个数,但不能两端都取.所有数都被取走后游戏结束,然后统计每个人取走的所有数之和, 作 ...

最新文章

  1. 阿里规范不建议多表join,可这SQL要怎么写啊?
  2. Meta分析如何进行敏感性分析
  3. java 发送邮件昵称_利用JavaMail发送QQ邮件
  4. android cm 老罗,Android之父打造了一款全面屏旗舰 罗永浩如此评价
  5. 微众银行软件测试笔试题面试题
  6. iso硬盘安装 凤凰os_虚拟机安装凤凰系统(PhoenixOS)教程
  7. Confusing Problem
  8. 【转】如何使用visual studio将你的程序打包成安装包
  9. E. Thematic Contests【dp】
  10. mac photoshop cs5.1 序列号
  11. 使用uvm_report_catcher屏蔽掉特定的uvm_error/uvm_warning
  12. 国产家用跑步机什么牌子好?
  13. 怎么把html放到速卖通详情,速卖通详情页布局怎么弄?
  14. 【图形处理】字模软件与汉字取模(GB2312、GBK,BIG5)(草稿)
  15. 学生宿舍管理系统 完成总结
  16. 小白也能动手搭建属于自己的博客网站
  17. 定积分的计算(分部积分法)
  18. 线下auc涨,线上ctr/cpm跌的原因和解决办法
  19. Linux系列——自动化批量安装软件
  20. 程序员修炼之道–从小工到专家

热门文章

  1. c语言 if 多个判断条件执行顺序_C语言之流程控制选择语句
  2. java 文件监听器_java7 文件监听器
  3. 7-17 汉诺塔的非递归实现 (25 分)(思路分析)
  4. 异步清零和同步置数/清零的区别
  5. 根据后序和中序求二叉树的先序
  6. 调用其他app 的lib_ButterKnife执行效率为什么比其他注入框架高?它的原理是什么...
  7. target not created怎么解决_怎么才能最短时、高效、踏实地学习 Python(附链接)...
  8. Ubuntu 16.04 安装 cuda 7.5.run BEGIN failed--compilation aborted at ./cuda-installer.pl line 5
  9. 2019 ICPC 南京 F. Paper Grading(字典树dfs序上树套树)
  10. #3456. 城市规划(生成函数,多项式求逆)