Description
给一个正整数n,求下列表达式的最大值:
((sin(x)+sin(y)+sin(z)))[x+y+z==n][x≥1,y≥1,z≥1]
x,y,z均为整数
Input
输入只有一行,包含一个正整数n
(3≤n≤3∗106)
Output
输出一行表示答案,请恰好保留9位小数.(你的答案必须和标准答案完全一样才算通过)
Sample Input
3
Sample Output
2.524412954
Hint
题意
题解:
转换一下原式 为
2sin(x+y2)cos(x−y2)+sin(n−x−y)
然后枚举x+y 因为x+y为定值所以令x==y,cos有最大值1 所以有
2∗sin(x)+sin(n−2∗x)
AC代码
#include <cstdio>
#include <cmath>
const double pi = acos(-1.0);
int main(){
int n;
scanf("%d",&n);
double sum = 0;
double mx = -999999;
for (int i = 1; i <= n; ++i){
sum = 2*sin(i*1.0)+sin(n-2*i);
if (sum > mx) mx = sum;
}
printf("%.9lf\n",mx);
return 0;
}