您的位置:首页 > Web前端

“玲珑杯”线上赛Round#17河南专场 A. Sin your life

2017-06-27 17:55 302 查看


题解

sin(x)+sin(y)=2⋅sin(x+y2
4000
)⋅con(x−y2) 

sin(x)+sin(y)=2·sin((x+y)/2)·con((x−y)/2) 

sin(x)+sin(y)+sin(z)=2⋅sin(x+y2)⋅con(x−y2)+sin(n−x−y)

sin(x)+sin(y)+sin(z)=2·sin((x+y)/2)·con((x−y)/2)+sin(n−x−y)

直接枚举x+y计算上列式子的最大值即可

复杂度O(n)O(n).

当x+y为偶数的时候,x-y=0时cos((x-y)/2)最大

当x+y为奇数的时候,x-y可以等于1,3,5...n-2

所以直接枚举就好了

#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int n;
scanf("%d",&n);
double ans=0,maxn=-2,a;
for(int i=2;i<=n-1;i++){
if(i%2==0){
a=2*sin(i/2)+sin(n-i);
}
else{
maxn=max(maxn,cos((i-2)/2.0));
a=2*sin(i/2.0)*maxn+sin(n-i);
}
ans=max(ans,a);
}
printf("%.9lf\n",ans);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数论 三角函数