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,不是很懂。

  1. #include <bits/stdc++.h>
  2. #define IOS ios::sync_with_stdio(false)
  3. using namespace std;
  4. #define inf (0x3f3f3f3f)
  5. typedef long long int LL;
  6. double dp[][];
  7. void work() {
  8. int n;
  9. scanf("%d", &n);
  10. dp[][] = dp[][] = ;
  11. dp[][] = dp[][] = cos(0.5);
  12. double ans = -1.0;
  13. for (int i = ; i <= n - ; ++i) {
  14. double res = sin(i * 0.5);
  15. if (res < ) {
  16. if (i & ) {
  17. ans = max(ans, * res * dp[][] + sin(n - i));
  18. } else ans = max(ans, * res * dp[][] + sin(n - i));
  19. } else {
  20. if (i & ) {
  21. ans = max(ans, * res * dp[][] + sin(n - i));
  22. } else ans = max(ans, * res * dp[][] + sin(n - i));
  23. }
  24. res = cos(i);
  25. dp[][] = min(dp[][], res);
  26. dp[][] = max(dp[][], res);
  27. dp[][] = min(dp[][], res);
  28. dp[][] = max(dp[][], res);
  29. }
  30. printf("%0.9f\n", ans);
  31. }
  32.  
  33. int main() {
  34. #ifdef local
  35. freopen("data.txt", "r", stdin);
  36. // freopen("data.txt", "w", stdout);
  37. #endif
  38. work();
  39. return ;
  40. }
  1. #include <bits/stdc++.h>
  2. #define IOS ios::sync_with_stdio(false)
  3. using namespace std;
  4. #define inf (0x3f3f3f3f)
  5. typedef long long int LL;
  6. const int maxn = 3e6 + ;
  7. double dp[maxn][];
  8. void work() {
  9. int n;
  10. scanf("%d", &n);
  11. dp[][] = dp[][] = cos();
  12. dp[][] = dp[][] = cos(0.5);
  13. // for (int i = 2; i <= n; ++i) {
  14. // dp[i][0] = min(dp[i - 2][0], cos(i * 0.5));
  15. // dp[i][1] = max(dp[i - 2][1], cos(i * 0.5));
  16. // }
  17. double ans = -1.0;
  18. for (int i = ; i <= n - ; ++i) {
  19. double res = sin(i * 0.5);
  20. if (i & ) {
  21. ans = max(ans, * res * dp[i - ][] + sin(n - i));
  22. } else {
  23. ans = max(ans, * res * dp[i - ][] + sin(n - i));
  24. }
  25. res = cos(i * 0.5);
  26. dp[i][] = min(dp[i - ][], res);
  27. dp[i][] = max(dp[i - ][], res);
  28. }
  29. printf("%0.9f\n", ans);
  30. }
  31.  
  32. int main() {
  33. #ifdef local
  34. freopen("data.txt", "r", stdin);
  35. // freopen("data.txt", "w", stdout);
  36. #endif
  37. work();
  38. return ;
  39. }

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 71

    Creepy People Leave You Cold Jack Nicholson, playing the crazed caretaker in The Shining, makes me r ...

  2. codeforces 659G G. Fence Divercity(dp)

    题目链接: G. Fence Divercity time limit per test 2 seconds memory limit per test 256 megabytes input sta ...

  3. CodeForces - 884F :Anti-Palindromize(贪心&费用流)

    A string a of length m is called antipalindromic iff m is even, and for each i (1 ≤ i ≤ m) ai ≠ am - ...

  4. POJ3468 A Simple Problem with Integers(数状数组||区间修改的RMQ问题)

    You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. One type of op ...

  5. MySQL上周新增激活用户在上周下单情况_20161107周一

    上周新增激活用户在上周下单情况 1.上周激活用户明细 #上周激活用户明细 SELECT a.城市,a.用户ID,a.用户名称,b.用户地址,b.联系电话,a.订单日期,c.年周,c.上周一,a.订单I ...

  6. BZOJ_1998_[Hnoi2010]Fsk物品调度_并查集+置换

    BZOJ_1998_[Hnoi2010]Fsk物品调度_并查集+置换 Description 现在找工作不容易,Lostmonkey费了好大劲才得到fsk公司基层流水线操作员的职位.流水线上有n个位置 ...

  7. redis设置密码和redis主从复制

    redis设置密码和redis主从复制 一.redis设置密码 1.Redis实用特性 安全性  主从复制(侦听器)事务处理 持久化机制 发布订阅消息 2.安全性:设置客户端连接后进行任何其他指定前需 ...

  8. KCF+Opencv3.0+Cmake+Win10 测试

    配置 需要的文件下载 安装CMake,安装opencv3.0.0 在KCFcpp-master 目录下新建一个文件夹,命名为build 打开CMake-GUI配置如下: 点击Configure,编译器 ...

  9. java 基础知识学习 内存泄露(memory leak) VS 内存溢出(out of memory)以及内存管理

    内存泄露(memory leak) VS 内存溢出(out of memory) 内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory ...

  10. [poj1144]Network(求割点模板)

    解题关键:割点模板题. #include<cstdio> #include<cstring> #include<vector> #include<stack& ...