2 条题解
-
1
一个比楼下还要好想的贪心,连脑子是什么都不知道
注意到股市的变化趋势是一定是若干个峰和谷交替出现,刷一遍,谷就all in,峰就all out,哈哈,赚麻了。
于是就有了一个你一定可以比我写的更简洁的代码:
#include<bits/stdc++.h> #define int long long using namespace std; const int N=1e5+10; double a[N],money=1; int gu[N],n,tot; signed main(){ cin>>n; for(int i=1;i<=n;i++){ double x; cin>>x; if(x==a[tot])continue;//去了一下重,也可以unique a[++tot]=x; } n=tot; for(int i=1;i<=n;i++){ if(i==1||i==n)continue; if(a[i]>a[i-1]&&a[i]>a[i+1])gu[i]=1; if(a[i]<a[i-1]&&a[i]<a[i+1])gu[i]=-1; } for(int i=1;i<=n;i++)if(gu[i]){if(gu[i]==1)gu[1]=-1;break;} for(int i=n;i>=1;i--)if(gu[i]){if(gu[i]==-1)gu[n]=1;break;} for(int i=1;i<=n;i++){ if(gu[i]==-1)money/=a[i]; if(gu[i]==1)money*=a[i]; } cout<<fixed<<setprecision(1)<<money; return 0; }
信息
- ID
- 310
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- (无)
- 递交数
- 15
- 已通过
- 10
- 上传者