股票问题集合
股票问题汇总
股票问题,指给定一系列数列,可以在某些天以当天价格买入,也可以在某些天以当天价格卖出。
按照买卖规则,可以分为:
1. 不能进行多笔交易;买股票之前只能先把手上的股票卖出。一般此类题是dp。
2. 可以进行多笔交易;手里可以同时持有多只股票。一般要贪心。
股票问题的核心是发现如何使得手里的资产最多。
无论是哪种模型,都可以看成如果第二天价格更高就卖,大不了可以反悔(可以以这天的价格再把卖掉的股票再买回来)。
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 233;
int w[maxn], f[maxn][110][2];
int main()
{
int n, k; scanf("%d%d", &n, &k);
for(int i = 1; i <= n; i++) scanf("%d", &w[i]);
memset(f, 0xcf, sizeof f);
for(int i = 0; i <= n; i++) f[i][0][0] = 0;
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= k; j++)
{
f[i][j][0] = max(f[i -
… Read the rest Read More