随笔分类 - 数学
摘要:重心拉格朗日插值模板题。 用上面那篇文章的公式计算。插入时更新每个 \(w_i\),询问时分别 \(O(n)\) 计算 \(l(k)\) 和 \(\sum\limits_{i=1}^n \frac{w_i}{k-x_i}\) 即可。注意使用上述公式时 \(k-x_i\) 不能为 $0$,所以我们要特
阅读全文
摘要:根据威佐夫博弈的结论,若当前是 \(N\) 态,则必须满足 \(a=(b-a)\times \frac{\sqrt5 +1}2\)(\(a,b\) 为两堆石子的个数)。 代码: #include<cstdio> #include<cstring> #include<algorithm> #inclu
阅读全文
摘要:博弈论基础知识 以下为拓展: 威佐夫博弈 给你两堆石子,每次可以从一堆中去任意多的石子,也可以同时从两堆中取相同数量任意多的石子,不能不取。最后一次取完的玩家获胜。 我们先观察前几个先手必败的局势来寻找规律: \[ (0,0)\\(1,2)\\(3,5)\\(4,7)\\(6,10)\\\cdots
阅读全文
摘要:题意: 设 \[ f(i)=1^k+2^k+\cdots + i^k\\ g(i)=f(1)+f(2)+\cdots+ f(i) \] 给定 \(k,a,i,d\) ,求 \[ h(i)=g(a)+g(a+d)+g(a+2d)+\cdots+ g(a+id) \] 引理:若一个多项式差分 \(k+1
阅读全文
摘要:这是个求自然数幂和的模板题。难点在于理解题意。 很容易发现 \(k=m+1\),然后就是 \(O(k^2)\) 的累计答案。 加上插值求自然数幂和,总复杂度为 \(O(k^3)\)。 代码: #include<cstdio> #include<cstring> #include<algorithm>
阅读全文
摘要:拉格朗日插值 拉格朗日插值法 给你 \(n\) 个坐标 \(P(x_i,y_i)\),求经过这 \(n\) 个点的不超过 \(n-1\) 次的多项式 \(f(x)\) 在 \(k\) 处的点值。 我们构造出 \(n\) 个多项式 \(g_i(x)\): \[ g_i(x)=y_i\times\pro
阅读全文
摘要:代码: #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #define int long long using namespace std; const int N=1000000,M=9982443
阅读全文
摘要:代码: #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #define int long long using namespace std; const int N=3000,M=998244353;
阅读全文
摘要:我竟然为这题的函数不能拆成完成积性函数想了两个小时(捂脸)。 看到这么大的数据范围和求前缀和的要求,我们首先想到了Min_25筛。 设 \(f(i)=\sigma_0(i^k)\),则 \(f(p^e)=ke+1\)。 啊啊啊这个 \(f\) 没有办法拆成完全积性函数,所以我们就求不了 \(f\)
阅读全文
摘要:代码: #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #include<cmath> using namespace std; typedef long long LL; const int M=1
阅读全文
摘要:最小圆覆盖 主要是我太菜了不会证明qwq,上面的博客讲的非常好。 主要是存代码: #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<cmath> using namespace std
阅读全文
摘要:使用面积法与矢量叉积即可。 代码: #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> using namespace std; struct Point { double x,y; Point() {}
阅读全文
摘要:按逆时针方向依次给出多边形 \(n\) 个顶点,求多边形的面积。 公式: \[ Area=\frac{1}{2}|\sum\limits_{i=1}^{n}\overrightarrow{OP_i}\times \overrightarrow {OP_{i+1}}| \] (其中 \(P_{n+1}
阅读全文
摘要:计算几何是几何学的一个重要分支,也是计算机科学的一个分支。常常需要通过计算机来完成大量、繁琐的运算,这也是它们被称为“计算几何”的原因吧!(实在想不出话说了,抄了数学一本通上的一段话当开场白) 基本算法 一些基础的计算几何算法,学习之前只需要知道矢量的运算及一些几何中最基本的定义(如平面直角坐标系,
阅读全文
摘要:给一个 \(n\) 个点的多边形,给一个点 \(P\),问点 \(P\) 是否在多边形内(或多边形上)。 我们随便画一个多边形,随便在多边形内点一点,随便向外发一条射线,可以发现这条射线与多边形的交点个数为奇数。然后就做完了。 对这条性质的简单证明:我们发现多边形内一点想要到外面,必须经过一条边,如
阅读全文
摘要:给定两线段 \(P_1P_2\) 和 \(P_3P_4\),要求判断他们是否相交。 通过两个步骤完成判断: 快速排斥实验。如果两个线段相交,那么分别以这两个线段为对角线的矩形一定相交(包括只有公共边或只有公共点的相交)。我们首先判断这两个线段是否满足这个条件。 跨立实验。如果这两个线段幸运的通过了上
阅读全文
摘要:给定四个点 \(A,B,C,D\),问点 \(D\) 是否在 \(\triangle ABC\) 中(边上或内部)? 考虑叉积可以非常容易的判断:把三角形看首尾相连的三个矢量 \(\overrightarrow {AB}\ \overrightarrow{BC}\ \overrightarrow{C
阅读全文
摘要:给定点 \(Q,P_1,P_2\),问点 \(Q\) 是否在线段 \(P_1P_2\) 上。 首先运用矢量的叉积可以很方便地判断点是否在给定线段的直线上:若 \(Q\) 在直线 \(P_1P_2\) 上,则 \(\overrightarrow{P_1Q}\times \overrightarrow{
阅读全文
摘要:应该算是我做的正儿八经的容斥的第一道题吧。 直接做时间复杂度是$O(4nS)$的,显然不能接受。注意到这题只有$4$个物品,考虑容斥。 容斥模型: 元素:每一种方案 全集:所有组合总和为$n$的方案 属性:对每个物品购买的数量限制 这道题显然是对每个属性求交集,于是转化成了全集-补集的并集模型,由于
阅读全文
摘要:前置知识:常用公式 干货来啦,这里记录了一些推柿子是使用频率很高的公式(貌似可能也不知道有没有证明),善用这些公式可以带来极大的简洁。 \[ d(ij)=\sum\limits_{x\vert i} \sum\limits_{y\vert j}[gcd(x,y)=1] \] Siyuan 博客中的证
阅读全文

浙公网安备 33010602011771号