http://www.ifrog.cc/acm/problem/1137

和差化积公式,

变成2 * sin((x + y) / 2) * cos((x - y) / 2) + sin(n - (x + y))

然后很重要的一个就是cos(x) = cos(-x)

这样,枚举x + y的取值i,当x + y取值是i的时候,x - y的取值也是有固定的规律,具体就是

i是偶数的时候,0、2、...、这样吧

i是奇数的时候,1、3......、这样吧

然后就要分情况取值,

当sin((x + y) / 2)小于0,就要取一个min去和它乘,否则娶个大的,

数组开大了TLE,不是很懂。

#include <bits/stdc++.h>
#define IOS ios::sync_with_stdio(false)
using namespace std;
#define inf (0x3f3f3f3f)
typedef long long int LL;
double dp[][];
void work() {
int n;
scanf("%d", &n);
dp[][] = dp[][] = ;
dp[][] = dp[][] = cos(0.5);
double ans = -1.0;
for (int i = ; i <= n - ; ++i) {
double res = sin(i * 0.5);
if (res < ) {
if (i & ) {
ans = max(ans, * res * dp[][] + sin(n - i));
} else ans = max(ans, * res * dp[][] + sin(n - i));
} else {
if (i & ) {
ans = max(ans, * res * dp[][] + sin(n - i));
} else ans = max(ans, * res * dp[][] + sin(n - i));
}
res = cos(i);
dp[][] = min(dp[][], res);
dp[][] = max(dp[][], res);
dp[][] = min(dp[][], res);
dp[][] = max(dp[][], res);
}
printf("%0.9f\n", ans);
} int main() {
#ifdef local
freopen("data.txt", "r", stdin);
// freopen("data.txt", "w", stdout);
#endif
work();
return ;
}
#include <bits/stdc++.h>
#define IOS ios::sync_with_stdio(false)
using namespace std;
#define inf (0x3f3f3f3f)
typedef long long int LL;
const int maxn = 3e6 + ;
double dp[maxn][];
void work() {
int n;
scanf("%d", &n);
dp[][] = dp[][] = cos();
dp[][] = dp[][] = cos(0.5);
// for (int i = 2; i <= n; ++i) {
// dp[i][0] = min(dp[i - 2][0], cos(i * 0.5));
// dp[i][1] = max(dp[i - 2][1], cos(i * 0.5));
// }
double ans = -1.0;
for (int i = ; i <= n - ; ++i) {
double res = sin(i * 0.5);
if (i & ) {
ans = max(ans, * res * dp[i - ][] + sin(n - i));
} else {
ans = max(ans, * res * dp[i - ][] + sin(n - i));
}
res = cos(i * 0.5);
dp[i][] = min(dp[i - ][], res);
dp[i][] = max(dp[i - ][], res);
}
printf("%0.9f\n", ans);
} int main() {
#ifdef local
freopen("data.txt", "r", stdin);
// freopen("data.txt", "w", stdout);
#endif
work();
return ;
}

TLE code

1137 - Sin your life sin公式 + 枚举的更多相关文章

  1. [再寄小读者之数学篇](2014-11-19 $\sin(x+y)=\sin x\cos y+\cos x\sin y$)

    $$\bex \sin(x+y)=\sin x\cos y+\cos x\sin y. \eex$$ Ref. [Proof Without Words: Sine Sum Identity, The ...

  2. sin n次方 x 的降幂公式

    A(n) = ∫ sinⁿx dx= ∫ sinⁿ⁻¹xsinx dx= - ∫ sinⁿ⁻¹x d(cosx)= - sinⁿ⁻¹xcosx + ∫ cosx • d(sinⁿ⁻¹)= - sinⁿ ...

  3. 数学中的Sin和Cos是什么意思?(转)

    数学中的Sin和Cos是什么意思? 作者:admin 分类:生活随笔 发表于 2012年03月21日 16:48 问:数学中的Sin和Cos是什么意思? 答:sin, cos, tan 都是三角函数, ...

  4. 利用Xilinx中的ROM构造查找表来计算sin和cos的方法探讨

    1.使用matlab制作.coe文件 查找表的构造 构造256点的正余弦表 exp(-j*2*pi*(0:255)/256),分别得到 cos和sin的查找表 matlab代码: 求sin fid = ...

  5. 数学图形(1.2)Sin曲线

    相关软件参见:数学图形可视化工具,使用自己定义语法的脚本代码生成数学图形.该软件免费开源.QQ交流群: 367752815 Sin曲线 vertices = x = *PI) to (*PI) y = ...

  6. Python sin() 函数

    描述 sin() 返回的x弧度的正弦值. 语法 以下是 sin() 方法的语法: import math math.sin(x) 注意:sin()是不能直接访问的,需要导入 math 模块,然后通过 ...

  7. 带 sin, cos 的线段树 - 牛客

    链接:https://www.nowcoder.com/acm/contest/160/D来源:牛客网 题目描述给出一个长度为n的整数序列a1,a2,...,an,进行m次操作,操作分为两类.操作1: ...

  8. sin之舞---蓝桥杯练习

    问题描述 最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功.所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力. 不妨设 An=s ...

  9. 已知三角形ABC为锐角三角形,求 sinA + sinB·sin(C/2) 的最大值。

    已知三角形ABC为锐角三角形,求 sinA + sinBsin(C/2) 的最大值. 解:Δ := sinA + sinB·sin(C/2) = sin(B+C) + sinB·sin(C/2) = ...

随机推荐

  1. listen 70

    Better Sidewalks Could Bring Improved Public Health Most of our serious illnesses and deaths in the ...

  2. Promise 入门与使用

    Tags: ECMAScript6 参考资料 promises-book Promise对象 we-have-a-problem-with-promises Promise最初被提出是在 E语言中, ...

  3. 远程调用appium server

    例如:我有两台电脑A(192.168.112.10)和B(192.168.112.11),那我怎么能在A执行本地脚本,但是使用B上的server呢?   查看appium连接appium服务并开启一个 ...

  4. hdu 1521 排列组合 —— 指数型生成函数

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1521 标准的指数型生成函数: WA了好几遍,原来是多组数据啊囧: 注意精度,直接强制转换(int)是舍去小 ...

  5. 实现PIX需要参考的标准资料

    •初步了解PIX V2和V3:"IHE_ITI_TF_Rev8-0_Vol1_FT_2011-08-19"中第5章和第23章 •了解PIX V2相关事务: "IHE_IT ...

  6. openStack cinder 在往虚拟机上挂载云磁盘时总是提示挂在错误 最后找到原因原来是指定挂载云磁盘的虚拟机被锁定

    openStack 虚拟机的锁定功能是一个为了保护虚拟机 被误删除的一项创新共! 在VMs锁定状态下,一大部分针对此锁定的虚拟机都是无法执行的!! 需要进行相应的操作前,请注意解锁指定虚拟机,操作完成 ...

  7. CF-811B

    B. Vladik and Complicated Book time limit per test 2 seconds memory limit per test 256 megabytes inp ...

  8. hadoop学习笔记之-hbase完全分布模…

    安装环境: OS: Oracle linux 5.6 JDK: jdk1.6.0_18 Hadoop: hadoop-0.20.2 Hbase: hbase-0.90.5 安装准备: 1. Jdk环境 ...

  9. java的try后面跟括号

    例子: try (FileReader reader = new FileReader("data.txt")) { ... }catch (IOException io) { . ...

  10. linux下使用c判断文件夹是否为空的小程序

    自己写了一个 判断文件夹是否为空的小代码 //文件夹操作相关的函数的帮助$: man 3 readdir #include <stdio.h> #include <sys/types ...