
_____数学_____
文章平均质量分 92
zxyoi_dreamer
退役了退役了爬了爬了,搞个锤子算法竞赛,不如好好享受大学生活。
展开
-
数论选讲(更新中)
数论选讲(初等数论基础概念就不普及了)一些前置姿势:素数分布:素数有无限个,用π(x)\pi(x)π(x)表示小于xxx的素数个数,则随着xxx的增长,有π(x)=Θ(xlnx)\pi(x)=\Theta(\frac{x}{\ln x})π(x)=Θ(lnxx),同时蕴含常数111。这个结论可以用于估计某些与枚举素数有关的算法的复杂度。算术基本定理,又称唯一分解定理。对于任...原创 2019-02-16 17:24:25 · 2150 阅读 · 0 评论 -
2019.02.28【HAOI2018】【BZOJ5302】【洛谷P4495】奇怪的背包(裴蜀定理)
BZOJ传送门洛谷传送门解析:熟悉exgcdexgcdexgcd的人都知道这道题的结论。。。每一个viv_ivi等价于gcd(vi,P)gcd(v_i,P)gcd(vi,P)最后要求的www在模意义下实际上就是gcd(w,P)gcd(w,P)gcd(w,P)用O(P)O(\sqrt P)O(P)时间处理出所有PPP的约数就能愉快地水过了 。当然还是讲一下怎么做。以下的viv...原创 2019-02-28 21:47:03 · 189 阅读 · 0 评论 -
2019.03.04【ZJOI2018】【BZOJ5213】【洛谷P4339】迷宫(自动机)(数论)
BZOJ传送门洛谷传送门解析:这道题本质其实是要最小化一个能够接受所有mmm进制下KKK的倍数的自动机。代码:#include<bits/stdc++.h>using namespace std;#define ll long long#define re register#define gc get_char#define cs constnamespac...原创 2019-03-06 18:36:03 · 245 阅读 · 0 评论 -
【51nod1569】二项式系数的个数(Kummer定理)(数位DP)
传送门题解:ppp很大,注意做高精度除法的时候爆int,我就WA了五次。首先我们考虑组合数(n+mm){n+m\choose m}(mn+m)中含有ppp的指数为多少。我们发现其实就是(n+m)!(n+m)!(n+m)!中的指数减去n!n!n!中的指数再减去m!m!m!中的指数。总指数怎么算?很显然地,a!a!a!中含有的ppp的指数为∑i=1∞⌊api⌋\sum\limits_{i...原创 2019-08-03 15:39:40 · 420 阅读 · 0 评论 -
【51nod1479】小Y的数论题(构造)(扩展欧几里得)
传送门题解:猜得到应该是没有无解的情况。令x=2pb,y=2pa,z=2(pab+1)/cx=2^{pb},y=2^{pa},z=2^{(pab+1)/c}x=2pb,y=2pa,z=2(pab+1)/c即可得到一组合法解,但是注意到可能取000就gg了。对于222的整数次幂,直接特判即可。代码:#include<bits/stdc++.h>#define ll lo...原创 2019-08-03 18:14:57 · 348 阅读 · 0 评论 -
【ZJOI2017】【UOJ292】【LOJ2252】【洛谷P3689】多项式(暴力)(数学推导)
UOJ传送门LOJ传送门洛谷传送门垃圾BZOJ不知道是不是放错数据了,居然连标算都A不了题解:这道题最扯的地方在于,除了IO优化,没有任何板子可以拿上来。也就是说,这是一道纯思维难度加代码难度的题。与你板子熟不熟练没有任何关系。然而推出结论后,正解相当暴力。设mx=max(n,k)mx=\max(n,k)mx=max(n,k),则我们维护所有2mx2^{mx}2mx个不同的长为...原创 2019-07-26 21:50:56 · 332 阅读 · 0 评论 -
【51nod1415】切方块(数论毒瘤)(gcd)
传送门题解:这道题要抄代码倒是很好抄,推导很麻烦。首先当gcdgcdgcd不为111的时候,设g=gcd(a,b,c)g=gcd(a,b,c)g=gcd(a,b,c),我们可以轻易转化为g2g^2g2个小的平面来算。设F(a,b,c)F(a,b,c)F(a,b,c)表示当gcd(a,b,c)=1gcd(a,b,c)=1gcd(a,b,c)=1的时候的答案,先给一个结论,只想抄代码的可以拿...原创 2019-08-05 10:48:46 · 209 阅读 · 0 评论 -
【SNOI2017】【洛谷P5366】【BZOJ5019】【LOJ2257】遗失的答案(数论基础)(状压DP)(FMT)
LOJ传送门题解:(超大常数在线丢人)其实可以不用脑子先把非法判掉。那么实际上我们就是要求选择若干个数,其中存在指数达到gcdgcdgcd的下界,且存在指数达到lcmlcmlcm的上界。发现是个带位或转移的DP。FMT算出DP的前后缀就能支持强制令某个数出现,随便水了。代码:#include<bits/stdc++.h>#define ll long long#...原创 2019-08-08 20:24:34 · 426 阅读 · 0 评论 -
【校内模拟】水题(斐波那契通项公式)(LCT)
题意从前有个斐波那契数列, 他不甘于生活在序列上,他决定做一个有梦想的数列,于是他找到了一棵树,想生活在一棵树上。但是树告诉他,你需要解决下面的问题,才能够有资格生活在树上。· 给出一棵原创 2019-09-01 20:00:11 · 305 阅读 · 0 评论 -
【HNOI2019】序列(保序回归问题L2)(单调栈)(二分)
传送门终于写完HNOI2019了。HNOI2019的题其实都挺好的。有思维难度,有代码难度,有的题还有适当部分的常数优化,考察了各个方面的很多技巧。题解:首先这道题发现是个保序回归L2(不知道的可以看18年集训队论文)。那么我们知道这道题的不带修做法了:利用单调栈,将AiA_iAi分成尽可能少的段,使得每段的平均值单调上升。BiB_iBi取对应段AAA的平均值即可得到最优解。维...原创 2019-09-04 19:38:30 · 599 阅读 · 0 评论 -
【模板】单纯形
代码:#include<bits/stdc++.h>#define re register#define cs constcs int N=26;int n,m,type,q[N],id[N*2];double a[N][N],ans[N];namespace LP{ cs double eps=1e-8,INF=1e15; inline void pivot(in...原创 2019-09-16 20:42:59 · 238 阅读 · 0 评论 -
【UVa10498】Happiness(单纯形)
传送门板子题没有题解。代码:#include<bits/stdc++.h>#define ll long long#define re register#define cs constcs int N=25;cs double eps=1e-12,INF=1e17;int n,m;double a[N][N];inline void pivot(int l,...原创 2019-09-16 21:47:23 · 165 阅读 · 0 评论 -
【TCO2008】PreciousStones(线性规划)(单纯形)
传送门题解:设pip_ipi表示A教授拿走的iii号石头的比例,则我们有如下线性规划:limits:∑i=1npiAi=∑i=1n(1−pi)Bipi≤1pi≥0maximize:∑i=1npiAi\begin{aligned}limits:&&&&&&\sum_{i=1}^np_iA_i...原创 2019-09-17 08:44:30 · 375 阅读 · 0 评论 -
【CodeChef-FLYDIST】Flight Distance(线性规划)(对偶原理)(单纯形)
传送门题解:要求两点之间的连边不大于最短路???也就是说这条边的权值就是最短路的权值。除此以外还要求不能够继续松弛,否则就不是最短路。设wuvw_{uv}wuv表示u,vu,vu,v之间连边的原边权,tuv+t^+_{uv}tuv+表示修改边权的增加量,tuv−t^-_{uv}tuv−表示修改边权的减少量,duvd_{uv}duv表示新图中的u,vu,vu,v最短路大小,则我们...原创 2019-09-17 11:12:19 · 302 阅读 · 0 评论 -
【CF375E】Red and Black Tree(线性规划)(单纯形)
传送门题解:有一种复杂度优秀实际无比垃圾的O(n3)O(n^3)O(n3)树形DP,我以前写的:传送门这里主要就是考虑线性规划,首先列出来,xix_ixi表示这个点选没选,aia_iai表示选择这个点为黑点的代价。limits:∑i=1nxi=m∑dis(i,j)<Kxj≥1,∀ixi≥0minimize:∑iaixi\begin{aligned}limits:&&...原创 2019-09-17 14:29:31 · 443 阅读 · 0 评论 -
2019.01.19【BZOJ2226】【SPOJ5971】【洛谷P1891】LCMSum(筛法)(数学推理)(欧拉函数)
BZOJ传送门洛谷传送门SPOJ传送门解析:重温开通博客之前写的一些数学题。现在还是推了我一段时间的。思路:首先我们并不擅长处理LCMLCMLCM问题,所以一律换成gcdgcdgcd∑i=1nlcm(i,n)=∑i=1ni×ngcd(i,n)\sum_{i=1}^{n}lcm(i,n)=\sum_{i=1}^n\frac{i\times n}{gcd(i,n)}i=1∑nlcm...原创 2019-01-19 16:22:47 · 281 阅读 · 2 评论 -
2018.10.27【CodeForces402】D. Upgrading Array(数论)(DP)
传送门解析:首先这神奇的函数可以线性筛出来,只要弄明白线性筛的一个性质,当筛到某个数的时候,枚举的质数必然是它的最小质因子就行了。然后其实也可以在O(nlnn)O(\frac{\sqrt n}{ln\sqrt{n}})O(lnnn)时间内处理出单个数的函数值。fff的实现多种多样,这里就不细讲,主要讲一下两种做法O(n2)O(n^2)O(n2)的DPDPDP和O(n)O(n)O(n...原创 2018-10-27 22:57:12 · 164 阅读 · 0 评论 -
2018.08.28【NOIP2017】T1 小凯的疑惑 (数论)
传送门解析:真的很简单的一道题。大概小学奥数会涉及到。然而我学奥数的时候并没有。证明已经给无数dalaodalaodalao讲过一遍了。就今天下午再更新吧。。代码(连宏都懒得写):#include&amp;amp;amp;lt;bits/stdc++.h&amp;amp;amp;gt;using namespace std;int main(){ long long a,b;原创 2018-08-28 11:39:56 · 289 阅读 · 0 评论 -
2018.09.01【POJ2689】Prime Distance (线性筛)(埃氏筛)
传送门解析:不急不急。。。 这道题真的是太虐心了,卡miller_rabin代码:#include&amp;amp;amp;amp;amp;amp;lt;iostream&amp;amp;amp;amp;amp;amp;gt;#include&amp;amp;amp;amp;amp;amp;lt;cstdio&amp;amp;amp;amp;amp;amp;gt;#includ原创 2018-09-01 14:51:42 · 174 阅读 · 0 评论 -
2018.09.01【POJ3421】X-factor Chains(唯一分解)(组合数学)
传送门解析:切题,以后更题解。。。代码:#include&amp;lt;iostream&amp;gt;#include&amp;lt;cstdio&amp;gt;using namespace std;#define ll long long#define re register#define gc getchar#define pc putchar原创 2018-09-01 15:28:32 · 208 阅读 · 0 评论 -
2018.09.01【POJ3090】Visible Lattice Points (欧拉函数) (线性筛)(前缀和)
[传送门](Visible Lattice Points)解析:简单的欧拉函数套上一个线性筛。。。考虑这个方阵的下三角(反正上面也是对称过去的,乘以2就行了), 第iii列除去xxx轴上的和对角线上的点,就还剩iii个点,而如果有gcd(i,j)!=1gcd(i,j)!=1gcd(i,j)!=1,则该点在(i/gcd(i,j),j/gcd(i,j))(i/gcd(i,j),j/g...原创 2018-09-01 16:21:16 · 240 阅读 · 0 评论 -
2018.09.01 【NOI2010】能量采集 (容斥原理)
传送门解析:不明白NOINOINOI的题为什么会有非码农向。。。这道题可以用莫比乌斯反演,稍后我会更新莫比乌斯反演的题解。但其实这道题最好的做法是容斥。。。回去先看题,发现每个点(i,j)(i,j)(i,j)损失能量等于gcd(i,j)∗2−1gcd(i,j)∗2−1gcd(i,j)*2-1。。。似乎有点用。考虑统计gcd(i,j)==dgcd(i,j)==dgcd...原创 2018-09-01 18:23:29 · 272 阅读 · 0 评论 -
2018.09.07【COGS693】Antiprime数 (唯一分解)
传送门解析:以后再说。。。。代码:#include&lt;bits/stdc++.h&gt;using namespace std;#define ll long long#define re register#define gc getchar#define pc putchar#define cs const#define st staticinl...原创 2018-09-07 19:13:49 · 254 阅读 · 0 评论 -
2018.09.02【Atcoder Regular Contest 102】E.Stop. Otherwise...(数学)(容斥原理)(组合数)
传送门解析:数学题解析真的不好写,也不好看懂,建议自己敲一次代码再看一遍解析。。。感觉这位dalao的这篇题解不错.下面说一下我做这道题的思路。。。显然,对于一个iii,如果j&amp;amp;amp;amp;amp;lt;ij&amp;amp;amp;amp;amp;lt;ijjjj被选中,那么我们就不能选i−ji−ji-j(对于偶数,分选一个i/2i/2i/2和不选分类讨论)。而剩下对于答案没有影响的点数就是原创 2018-09-02 12:16:23 · 426 阅读 · 0 评论 -
2018.09.02【HDU5894】hannnnah_j’s Biological Test (组合数学)(乱搞)
传送门解析:第一个人可以从 n 个椅子中任选一个,然后剩余 n − 1 个椅子。 因为人的间隔至少 k 个椅子,先抽出 k ∗ m 个,最后再插在相邻两个人 中间。 然后剩下的 m − 1 个人就可以随便从剩下的椅子人选了。 容易知道这个方案数为Cm−1n−m∗k−1Cn−m∗k−1m−1 C_{n−m∗k−1}^{m-1}。以上是本校资料里的解释,zxyoizxyoi...原创 2018-09-02 18:49:22 · 492 阅读 · 0 评论 -
【模板】卢卡斯定理
参考题目:洛谷P3870解析:待填坑。。。代码(这题要爆int):#include&amp;amp;amp;amp;amp;lt;bits/stdc++.h&amp;amp;amp;amp;amp;gt;using namespace std;#define ll long long#define re register#define gc getchar#define pc putchar#de原创 2018-09-02 19:46:38 · 341 阅读 · 0 评论 -
2018.09.12【JLOI2014】【BZOJ3629】聪明的燕姿(约数和)(DFS)
[传送门](https://www.lydsy.com/JudgeOnline/problem.php?id=3629)---# 解析:首先,我们需要知道一个约数和公式。对于$n= \prod_{i=1}^{t}p_i^{k_i}$,$n$的约数之和(包括$n$和1)为$\prod_{i=1}^{t}\sum_{j=0}^{k_i}p_i^{j}$,所以我们要求的就是所有合法的$n$,使得其约数之和$s$.搜索,由于$\sum_{j=0}^{k_i}p_i^{j}$这原创 2018-09-12 00:24:05 · 194 阅读 · 0 评论 -
【模板】0/1分数规划
参考题目:POJ2976解析:####1.分数规代码(二分):#include&amp;amp;amp;amp;amp;amp;amp;lt;cstdio&amp;amp;amp;amp;amp;amp;amp;gt;#include&amp;amp;amp;amp;amp;amp;amp;lt;cctype&amp;amp;amp;amp;amp;amp;amp;gt;#incl原创 2018-09-07 17:24:32 · 460 阅读 · 1 评论 -
2018.09.27【CodeForces618F】Double Knapsack(抽屉原理)
传送门解析:我一开始还以为要用bitset维护一下出现了哪些和,但是后来发现发现bitset不好输出解。思路:其实我们为什么要维护出现过哪些和呢?我们可以维护一下前缀和。我们试着枚举元素总和比较小的的集合的每个前缀和。然后我们在元素总和大的集合中调整指针,使得当前前缀刚好不小于我们刚才枚举的前缀和。然后是关键的一步,我们计算前缀差,查询前面是否出现过同样的前缀差。如果查询到一样...原创 2018-09-27 20:17:14 · 192 阅读 · 0 评论 -
2018.09.30【Atcoder Regular Contest103】F - Distance Sums(构造)(数学推理)
传送门解析:本次构造题大赛的最后一道。真的毒瘤啊,前面给一个那么扯的DDD题,后面又给一个这么神仙的结论题。思路:首先拿到题我整个人是方的,根本不知道如何下手。。。找重心?明显假了啊。。。到所有点距离和最小的节点?似乎没什么好用的性质。到所有点距离和最大的节点?一定是一个叶子!考虑它不是一个叶子的情况,我们一定可以将它向叶子方向移动,从而得到一个更大的距离和。那么我们考虑怎么...原创 2018-09-30 14:44:29 · 423 阅读 · 0 评论 -
2018.10.20【校内模拟】面包(数学期望)
传送门解析:代码:#include&lt;bits/stdc++.h&gt;using namespace std;#define ll long long#define re register#define gc getchar#define pc putchar#define cs constinline int getint(){ re int num; re ...原创 2018-10-20 20:03:17 · 227 阅读 · 0 评论 -
2018.10.24【校内模拟】小 C 的序列(数论)(链表)
传送门解析:本来可以拿80pts80pts80pts暴力的然后unordered map−&gt;mapunordered\text{ }map-&gt;mapunordered map−>map,−20pts-20pts−20ptsSTSTST表−&gt;-&gt;−>线段树,−20pts-20pts−20pts。结果4...原创 2018-10-24 21:36:49 · 224 阅读 · 0 评论 -
【CF335E】 Counting Skyscrapers(期望)
传送门题解:模拟赛考场花了半个小时推出来了,纯数学题。。。。实际上不是那么难想,只要注意细节。首先考虑给Bob,问Alice的情况。已知Bob,询问Alice先给一个结论,Bob的结果就是Alice的期望。假设我们并不知道上面那个结论,来推一下Bob在飞了一个2l2^l2l的情况下经过的塔的个数(算尾不算头)。在这种情况下需要认为左端点高度是已经确定了的。设P(i)P(i)P(...原创 2019-10-07 16:57:03 · 254 阅读 · 0 评论