题解:P6904 [ICPC2015 WF] Amalgamated Artichokes
zhoujunchen · · 题解
专栏食用更佳
题意
这道题目需要计算在给定序列的股价模型中,最大的价格下跌幅 度。股价模型由以下方程给出:
题目要求找出最大的逆序对。
做题思路
-
使用循环计算每个
k 对应的股价,并计算相邻股价之差。 -
维护一个变量记录找到的最大下跌幅度。
-
如果最大下跌幅度为正值,则输出该值;否则输出
0 。
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;
}