题目链接:http://codeforces.com/gym/101550/attachments

总的来说就是要:

极大值卖出,极小值买入, 再加上端点时的特判. 还有就是会有连续几天股票价格相同的情况,这里就是判断的时候是严格的大于小于号的功劳了

首先手里肯定是没有股票的, 尝试买入第一天的股票, 如果下一天的股票价格低于当天的股票价格,我们就再卖出当前的所有股票来让下一天再去尝试买入股票.

除了第一天尝试买入股票的时候, 买入股票的时候应该是极小值, 我们可以一次次尝试:(如果当天的价格低于前一天的价格,就说明呈递减状态,就有可能遇到极小值,如果当前不是极小值,我们就再将买入的股票卖出就好了,然后继续尝试). 如果当前的价格高于后一天的价格,就可以卖出.

总之,买入的时候和上一天价格比较判断呈现什么状态,若递减,就可以尝试买入,(不符合条件就再卖出去么~). 卖出的时候和下一天价格比较判断呈现什么状态,若递减就说明可以卖出去,(注意:不能和上一天的价格比较看是否是递增状态就卖,因为卖出后股票就没有了,就需要重新买入,若后一天还是递增就不行了)

实现最精华的就是那个,尝试部分,(若当前尝试买入的不是最优的,就需要重新卖出,这也就是为什么循环里,两个if都要判断一下的原因,而且还是尝试买入为

a[i-1]和a[i]判断状态,卖出时为a[i]和a[i+1]判断状态的原因.)

自己在本子上画上几个图,横轴代表时间,纵轴代表价格, 折线图即可,画出每种状态的简图,自己模拟一下,应该就可以了.

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

const int maxn = 1e4 + ;

ll arr[maxn];

int main(){
int n;
scanf("%d", &n);
for(int i = ; i <= n; i++) scanf("%lld", &arr[i]);
ll all = , now = ;
for(int i = ; i <= n; i++) {
if(i == || arr[i-] > arr[i]) {//尝试买入
ll t = all / arr[i];
now += t;
all -= t*arr[i];
if(now > ) {
all += (now-)*arr[i];
now = ;
}
}
if(i == n || arr[i+] < arr[i]) all += arr[i]*now, now = ;
}
printf("%lld\n", all);
return ;
}

最新文章

  1. Windows Store App 过渡动画
  2. MVC4研发中遇到问题【持续总结....】
  3. 改造一下C# Substring()函数
  4. 20145120 《Java程序设计》第10周学习总结
  5. DNS为什么通常都会设置为14.114.114.114
  6. 在 SUSE 11 sp2 上安装 freeradius
  7. Sublime text2 常用插件集锦
  8. Number Sequence--hdu1005
  9. Angular中Controller之间的信息传递(第二种办法):$emit,$broadcast,$on
  10. C#多线程的用法4-线程间的协作lock快捷方式
  11. 探讨 java中 接口和对象的关系
  12. ●BZOJ 3676 [Apio2014]回文串
  13. My Stuck in C++
  14. Oracle AWRDD报告生成和性能分析
  15. Layui使用table展示数据
  16. [LeetCode] Rank Scores -- 数据库知识(mysql)
  17. Spring Boot 2程序不能加载 com.mysql.jdbc.Driver 问题
  18. java基础 二进制补码
  19. HashMap Hashtable LinkedHashMap TreeMap
  20. BETA-2

热门文章

  1. 当DIV内出现滚动条,fixed实效怎么办?
  2. BGP的地址聚合
  3. 在线答题APP动工前的小总结
  4. GCPC 2013_A Boggle DFS+字典树 CSU 1457
  5. 吴裕雄--天生自然 JAVASCRIPT开发学习:作用域
  6. 3,Structured Streaming使用checkpoint进行故障恢复
  7. Linux学习-课后练习(第二章命令)20200216
  8. jsch通过SSH2执行linux命令
  9. mysql四种事务隔离级别
  10. POJ 1731:Orders