1 条题解
-
0
题意
这道题目需要计算在给定序列的股价模型中,最大的价格下跌幅 度。股价模型由以下方程给出:
$$\operatorname {price}(k) = p \cdot (\sin (a \cdot k+b) + \cos (c \cdot k+d) + 2)$$题目要求找出最大的逆序对。
做题思路
-
使用循环计算每个 对应的股价,并计算相邻股价之差。
-
维护一个变量记录找到的最大下跌幅度。
-
如果最大下跌幅度为正值,则输出该值;否则输出 。
code:
#include<bits/stdc++.h> using namespace std; double pr[1000010],ans; int p,a,b,c,d,n,maxi; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>p>>a>>b>>c>>d>>n; for(int i=1;i<=n;i++) pr[i]=p*(sin(a*i+b)+cos(c*i+d)+2); maxi=1; for(int i=2;i<=n;i++){ if(pr[maxi]<pr[i])maxi=i; else ans=max(ans,pr[maxi]-pr[i]); } printf("%.8lf",ans); return 0; } -
- 1
信息
- ID
- 5771
- 时间
- 3000ms
- 内存
- 1024MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者