1 条题解
-
0
自动搬运
来自洛谷,原作者为

sxh2325
壶关还能涨估值?!搬运于
2025-08-24 22:25:05,当前版本为作者最后更新于2024-04-12 15:05:19,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
题目是要带入公式求最大跌幅。
第一眼看到题目,我还以为是双指针,结果就 TLE 了......
思路
最高能取到 ,所以必须一次运行到位。我们可以以第一个数为第一个标准。当接下来的数是跌了时,就用一个变量加上跌的量;当接下来的数是涨了时,就用一个变量加上涨的量(减去差时涨为负)。如果变量为负,也就意味着对比原数是涨了,此时,刷新变量并把下一个标准定为使变量为负的那个数:
代码:
#include<bits/stdc++.h> using namespace std; double p,a,b,c,d,ans=0,g,j,l,o,i=0,u; int main() { long long k=1,n,h; cin>>p>>a>>b>>c>>d>>n; l=p*(sin(a*k+b)+cos(c*k+d));//存储上一个股价 for(k=2;k<=n;k++){ g=p*(sin(a*k+b)+cos(c*k+d));//带入公式 if(i<0) i=0;//当股价超过标准时,刷新标准(i为用来累计跌(涨)的量) i+=l-g;//跌(涨)的量 if(i>ans) ans=i;//存储最大跌幅 l=g; } printf("%.6lf",ans);//差值小于10的-6次方(0.000001) return 0; }本蒟蒻第2次写题解,有什么不妥之处请各位大佬指正。
- 1
信息
- ID
- 6052
- 时间
- 3000ms
- 内存
- 1024MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者