“玲珑杯”线上赛 Round #17 Sin your life(数学知识)
来源:互联网 发布:时代周刊封面 知乎ps 编辑:程序博客网 时间:2024/06/06 12:30
DESCRIPTION
给一个正整数nn,求下列表达式的最大值:
(sin(x)+sin(y)+sin(z))[x+y+z=n][x≥1][y≥1][z≥1](sin(x)+sin(y)+sin(z))[x+y+z=n][x≥1][y≥1][z≥1]为了降低难度,这里的x,y,zx,y,z皆为整数
INPUT
输入只有一行,包含一个正整数n(3≤n≤3∗106)n(3≤n≤3∗106)
OUTPUT
输出一行表示答案,请恰好保留99位小数.(你的答案必须和标准答案完全一样才算通过)
SAMPLE INPUT
3
SAMPLE OUTPUT
2.524412954
思路:先转化sin(x)+sin(y)+sin(z)=2*sin((x+y)/2)*cos((x-y)/2)+sin(n-(x+y));
x+y的取值范围为[2,n-1],假设固定x+y,则相当于求A*cos((x-y)/2)+B的最大取值;
则本题转化为对于固定x+y,怎么求cos(...)函数最大取值;
我们先举几个例子观察:(ps:x,y,z均>=1)
1)x+y=2,则x-y={0};
2)x+y=4,则x-y={-2,0,2};
3)x+y=6,则x-y={-4,-2,0,2,4};
观察x-y取值特点迭代更新即可;(ps:cos()函数对称)
代码:
#include <bits/stdc++.h>using namespace std;int main() { int n; scanf("%d",&n); double ans = -1E9; double m1 = -1E9, m2 = -1E9; for (double i = 2; i < n; i += 2) { m1 = max(m1, cos( (i - 2) / 2 )); ans = max(ans, 2. * sin(i/2) * m1 + sin(n - i)); } for (double i = 3; i < n; i += 2) { m2 = max(m2, cos( (i - 2) / 2 )); ans = max(ans, 2. * sin((double)i/2) * m2 + sin(n - i)); } printf("%.9f\n",ans); return 0;}
阅读全文
0 0
- “玲珑杯”线上赛 Round #17 Sin your life(数学知识)
- “玲珑杯”线上赛Round#17河南专场 A. Sin your life
- 玲珑学院 1137 Sin your life 【数学】
- “玲珑杯”线上赛 Round #15 咸鱼文章(栈)
- “玲珑杯” 线上赛 Round #15 咸鱼拷问(RMQ)
- “玲珑杯” 线上赛 Round #5 Variance(线段树)
- “玲珑杯”线上赛 Round #17 河南专场 D -.妩钶取玳°月(FFT)
- “玲珑杯”线上赛 Round #17 河南专场 B(容斥)
- Sin your life 数学
- “玲珑杯”线上赛 Round #15 河南专场 C
- “玲珑杯”线上赛 Round #17 震惊,99%+的中国人都会算错的问题(容斥原理)
- “玲珑杯”线上赛 Round #15 A Reverse the lights(dp)
- “玲珑杯”线上赛 Round #15 咸鱼魔法记(二分搜索)
- “玲珑杯”线上赛 Round #15 咸鱼魔法记(尺取法)
- “玲珑杯”线上赛 Round #15 咸鱼商店(二分搜索+01背包)
- “玲珑杯”线上赛 Round #15 河南专场:F -- 咸鱼文章
- “玲珑杯”线上赛 Round #15 河南专场:G -- 咸鱼拷问
- “玲珑杯”线上赛 Round #15 河南专场:E -- 咸鱼旅行
- 动态规划训练20 [Treats for the Cows POJ
- BFS练习-POJ.2386
- MySQL性能优化的最佳21条经验
- 圆环取数
- 什么是SVM? 写得挺有意思
- “玲珑杯”线上赛 Round #17 Sin your life(数学知识)
- 动态规划训练21 [FatMouse and Cheese HDU
- 管道
- 线程基础概念
- 根据角色的选择获取对应信息
- 发纸牌问题---多维数组
- hdu2645
- 用xshell远程登录virtualbox中的Ubuntu虚拟机
- 寻址方式