1137 - Sin your life sin公式 + 枚举
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公式 + 枚举的更多相关文章
- [再寄小读者之数学篇](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 ...
- sin n次方 x 的降幂公式
A(n) = ∫ sinⁿx dx= ∫ sinⁿ⁻¹xsinx dx= - ∫ sinⁿ⁻¹x d(cosx)= - sinⁿ⁻¹xcosx + ∫ cosx • d(sinⁿ⁻¹)= - sinⁿ ...
- 数学中的Sin和Cos是什么意思?(转)
数学中的Sin和Cos是什么意思? 作者:admin 分类:生活随笔 发表于 2012年03月21日 16:48 问:数学中的Sin和Cos是什么意思? 答:sin, cos, tan 都是三角函数, ...
- 利用Xilinx中的ROM构造查找表来计算sin和cos的方法探讨
1.使用matlab制作.coe文件 查找表的构造 构造256点的正余弦表 exp(-j*2*pi*(0:255)/256),分别得到 cos和sin的查找表 matlab代码: 求sin fid = ...
- 数学图形(1.2)Sin曲线
相关软件参见:数学图形可视化工具,使用自己定义语法的脚本代码生成数学图形.该软件免费开源.QQ交流群: 367752815 Sin曲线 vertices = x = *PI) to (*PI) y = ...
- Python sin() 函数
描述 sin() 返回的x弧度的正弦值. 语法 以下是 sin() 方法的语法: import math math.sin(x) 注意:sin()是不能直接访问的,需要导入 math 模块,然后通过 ...
- 带 sin, cos 的线段树 - 牛客
链接:https://www.nowcoder.com/acm/contest/160/D来源:牛客网 题目描述给出一个长度为n的整数序列a1,a2,...,an,进行m次操作,操作分为两类.操作1: ...
- sin之舞---蓝桥杯练习
问题描述 最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功.所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力. 不妨设 An=s ...
- 已知三角形ABC为锐角三角形,求 sinA + sinB·sin(C/2) 的最大值。
已知三角形ABC为锐角三角形,求 sinA + sinBsin(C/2) 的最大值. 解:Δ := sinA + sinB·sin(C/2) = sin(B+C) + sinB·sin(C/2) = ...
随机推荐
- Linux_配置_02_配置dns
二.参考资料 1.centOS 7 设置DNS方法 同之前版本不同
- Visual Studio 2012简体中文专业版密钥(激活码)
VS2012 正式版在Beta版的基础上进行了很多改进,尤其是加入了全新的用户界面. VS2012 的硬件需求与VS2010相同,不过由于 Visual Studio 2012 利用了新版 Windo ...
- Codeforces 755B. PolandBall and Game 贪心
题目大意: 有两个人轮流说单词,已经说过的单词不能再说.给出两人掌握的不同的单词,两人可能掌握相同的单词,但是这个单词也只能说一边.问在两人都是最优策略下先手是否必胜. 题解: 我们发现最优策略一定是 ...
- 2012年浙大:Sharing
题目描述: To store English words, one method is to use linked lists and store a word letter by letter. T ...
- FlexPaper+SwfTools实现的在线文档功能
最近一个项目需要实现一个在线浏览文档的功能.准备使用FlexPaper配合Pdf2Swf实现. 主要需求在于: ➔ 文档页数很多,少则几百页,多则上千页. ➔ 相应的文档大小也在50MB以上. ...
- yii使用CFrom调用ajax失败的记录
在学习配置yii的CFrom的时候,发现怎么也不能让ajax生效,后来看文档后 ,终于发现了问题的所在. 问题配置文件如下 public function getUserConfig(){ retur ...
- 由一次动态改变font-size的大小引申的一系列困惑补录
以下结论如有错误,欢迎指正 在切入正题之前,先了解下window 和document这两个大对象 我们熟知 JavaScript的组成如下图所示: window对象和document对象分别属于哪个分 ...
- 493. Reverse Pairs(BST, BIT, MergeSort)
Given an array nums, we call (i, j) an important reverse pair if i < j and nums[i] > 2*nums[j] ...
- 卸载/安装ubuntu系统教程
卸载ubuntu 1.修复Mbr 1.下载软件MbrFix,地址:https://www.softpedia.com/get/System/Hard-Disk-Utils/MBRFix.shtml 2 ...
- AI决策算法 之 GOAP (二)
http://blog.csdn.net/lovethRain/article/details/67634803 GOAP 的主要逻辑: 1.Agent的状态机初始化Idle状态 2.Idel状态根据 ...