笔试题&数学杂题
文章平均质量分 59
笔试题&数学杂题
hans774882968
这个作者很懒,什么都没留下…
展开
-
挑战全网最简洁快速平方根倒数算法讲解
功能等同于函数`(x) => 1 / Math.sqrt(x)`。前置知识牛顿迭代:本文用到的公式:`y = 1 / sqrt(x) -> 1 / y^2 - x = 0`代入得结果。[IEEE-754浮点数表示](https://en.wikipedia.org/wiki/IEEE_754):一句话总结:正数的符号位肯定为0,`x = (1 + M / 2^23) * 2^(E - 127)`。## 推导过程上述代码只有这几行 是不那么显然的。原创 2023-11-02 15:14:36 · 320 阅读 · 0 评论 -
区间乘积的因子数之和——前缀和思想+定一移二
(sorry没找到原题链接~)有一个数组,长度≤1e5,。设区间的权值为区间元素乘积的因数个数,求所有区间的权值和,模。区间权值为,这两个量可以用前缀和表示,不妨设为。则所求为∑l=0r−1(s2[r]−s2[l]+1)∗(s3[r]−s3[l]+1)\sum_{l=0}^{r-1} (s2[r]-s2[l]+1)*(s3[r]-s3[l]+1)l=0∑r−1(s2[r]−s2[l]+1)∗(s3[r]−s3[l]+1)我们枚举,则认为是固定的,而是变化的。拆开得r∗s2[r]∗s3[r]−s2原创 2022-06-27 01:56:52 · 553 阅读 · 1 评论 -
【GAMES101闫令琪图形学】作业1(配置opencv4.5.4,并解决常见错误)
宿主机:Windows10;虚拟机:Ubuntu20.04。作者:hans774882968下载opencv4.5.4:https://opencv.org/releases/opencv_contrib4.5.4:https://github.com/opencv/opencv_contrib/releases/tag/4.5.4unzip opencv-4.5.4.zipunzip opencv_contrib-4.5.4.zip注意,两个文件夹要放在同一个文件夹(我命名为openc原创 2022-02-11 17:35:34 · 4038 阅读 · 1 评论 -
【Ubuntu C++ opencv】再写一个hello world(并解决常见错误)
测试一下cv::imread+cv::imshow是否正常。需要用到make、cmakemain.cpp#include <iostream>#include <opencv2/opencv.hpp>using namespace std;int main (int argc, const char **argv) { const vector<string> paths = {"壁纸1.png", "壁纸2.png", "壁纸3.jpg"};原创 2022-02-11 16:27:39 · 2125 阅读 · 0 评论 -
VirtualBox虚拟机扩容步骤笔记
宿主机:Windows10;虚拟机:Ubuntu20.04。真的好麻烦好气人作者:hans774882968扩容virtualbox文件夹(比如D:\VirtualBox)下:.\VBoxManage list hdds.\VBoxManage modifyhd 1b7e3a31-4325-44dd-a689-fec10ca2e430 --resize 122880打开虚拟机,查看磁盘情况df -H你会发现可用空间没变大。这是因为:扩容相当于你插入了一块新硬盘,但是你并没有对其进行分区原创 2022-02-11 00:40:23 · 748 阅读 · 2 评论 -
【GAMES101闫令琪图形学】作业0(配置开发环境)
去games101往期作业汇总帖下载作业0的压缩包。作业0是让你配环境的,很简单。操作系统:VirtualBox虚拟机,Ubuntu20.04(比课程提供的虚拟硬盘版本更高!)安装eigen和cmakesudo apt-get install libeigen3-devsudo apt-get install cmakecmake -version // 2022年2月10日:3.16.3如果你的代码引用头文件时写了#include <Eigen/Dense>,那么还需要把Eige原创 2022-02-10 13:30:48 · 3874 阅读 · 1 评论 -
手算平方根的JavaScript实现,并推广至任意次方根
手算方法的思想是利用之前已求得的所有位,求出下一个小数位。这种思想在算法领域有着广泛的应用,比如动态规划思想。设之前已求出的整数部分和小数部分为`a`,对`a`不断乘以10,直到它是一个整数,仍记为`a`。这一过程即移除小数点的过程。比如:设之前已经求出`a = 11.45`,那么小数点移除后得`a = 1145`。`a`的初值为平方根的整数部分`intPart`,用二分法确定。设`v`的初值为待求平方根的数,每次`a`乘以10,它也要乘以100。设要求的下一小数位为`b`。于是`b`是满足`v原创 2021-09-28 01:47:15 · 887 阅读 · 0 评论 -
【汤普森问题】正弦定理乱搞解法
最近这个图在各个群见过好多次了,烦都烦死了。传送门其实反复用正弦定理也可以做,主要的依据就是AB=BC。记AC交BD于E。由正弦定理:看三角形ABD,BC/sin(x)=AB/sin(x)=AD/sin(20),三角形AED,AD/sin(70)=ED/sin(110-x),三角形EDC,ED/sin(30)=EC/sin(40),三角形EBC,EC/sin(60)=BC/sin(70)。于是sin(110-x)/sin(x) = sin(60)*sin(30)/(sin(20)*sin(40))原创 2021-12-26 22:48:34 · 1643 阅读 · 0 评论 -
美团2021届秋季校园招聘笔试-小美的区域会议——人工加入限制+树形dp
总结:集合划分的思想+树形dp+定义序关系(用于去重)直接按树形dp想,没有思路,因为你强行记录所选取方案集合的权值最小和最大显然不可做。此时考虑加入一些假设(限制)。假设当前枚举的点i是所选子树的点权最小的点(假设是最大的点也行)。不难发现遍历所有i对应的合法方案集合,是对所有合法方案的一个划分。以i为树根跑树形dp,保证所有选择的点的权值都在a[rt]~a[rt]+k即可。因为子树答案只会被使用一次,所以dp数组可以省略。时间复杂度:O(n^2)但是我们还面临一个问题:如果一个合法方案有多个最.原创 2021-07-29 00:34:59 · 683 阅读 · 4 评论