dmax

洛谷P5019 铺设道路 题解 模拟/贪心基础题

删除回忆录丶 提交于 2019-12-03 07:13:12
题目链接: https://www.luogu.org/problemnew/show/P5019 这道题目是一道模拟题,但是它有一点贪心的思想。 我们假设当前最大的深度是 \(d\) ,那么我们需要把所有深度为d的坑全都填成深度为 \(d-1\) ,然后去填深度为 \(d-1\) 的坑…… 实现代码如下(手动开启了O2优化,不然会TLE2组): #include <bits/stdc++.h> using namespace std; #pragma GCC optimize(2) const int maxn = 100010; int n, d[maxn], dmax, cnt; int main() { scanf("%d", &n); for (int i = 0; i < n; i ++) { scanf("%d", d+i); dmax = max(dmax, d[i]); } for (; dmax > 0; dmax --) for (int i = 0; i < n; i ++) if (d[i] >= dmax && (!i || d[i-1] < dmax)) cnt ++; printf("%d\n", cnt); return 0; } 来源: https://www.cnblogs.com/codedecision/p/11782491.html

快速三角函数算法的误差控制(sin cos)

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-01 05:01:43
  工程应用常涉及三角函数的快速计算。设计者往往需要降低运算精度以提高程序的运行速度。常用的快速三角函数算法主要包括CORDIC、泰勒展开式逼近、查表等等。然而,网上的文章大多只介绍如何实现相应的算法,而忽视了定量分析算法精度并以此指导设计的过程。此外,算法不同,误差分析的数学方法也不尽相同。在多种算法之间比较时,需要耗费一些时间来建立模型。如果建立一个通用的误差分析框架,框架不局限于现存的几类算法,并且实现自动化的筛选,则有可能提高工作效率。   本文试图从开发者的角度,介绍一种通用的数值型误差分析框架,并以泰勒展开算法为例分析了其展开式项数与精度之间的定量关系,最终试图通过这些工作为快速三角函数算法的设计提供一定参考。 一、快速三角函数算法的原理分析 1. 预处理    对三角函数求值应充分考虑函数本身的性质。首先是周期性:正余弦函数的周期为2π,自变量的所有取值均可变换到单个周期[0, 2π]内,而使因变量保持不变;其次是对称性:例如正弦函数[0, π]上的图像与[π, 2π]上的图像关于X轴对称。取其中一支[0, π],还可以发现[0, π/2]与[π/2, π]上的图像关于平行Y轴的直线x = π/2对称。同理余弦函数也满足类似的性质。   综合上述性质可知,对于某个三角函数,若已知其在[0, π/2]的函数关系及必要的对称关系