股票买卖 II
CI_is_safe · · 个人记录
原题
DP
令
#include<cstdio>
#include<algorithm>
using namespace std;
#define L(i,a,b) for(int i=a;i<=b;++i)
#define in scanf
const int N=100010;
int n,a[N],f[N][2];
int main(){
scanf("%d",&n);
L(i,1,n)in("%d",a+i);
f[1][0]=0,f[1][1]=-a[1];
L(i,2,n){
f[i][0]=max(f[i-1][0],f[i-1][1]+a[i]);
f[i][1]=max(f[i-1][0]-a[i],f[i-1][1]);
}
printf("%d",f[n][0]);
return 0;
}
贪心
考虑对于每个间隔天数
#include<cstdio>
#include<algorithm>
using namespace std;
#define L(i,a,b) for(int i=a;i<=b;++i)
#define in scanf
const int N=100010;
int n,a[N],res;
int main(){
scanf("%d",&n);
L(i,1,n)in("%d",a+i);
L(i,2,n)res+=max(0,a[i]-a[i-1]);
printf("%d",res);
return 0;
}