
数学
风声sp
这个人很懒,还没想到说点啥
展开
-
数论常见公式(不间断更新)
迪利克雷卷积ϵ=μ∗1⇔ϵ(n)=∑d∣nμ(d)(1)\epsilon=\mu*1\Leftrightarrow \epsilon(n)=\sum_{d|n}\mu(d) \tag{1}ϵ=μ∗1⇔ϵ(n)=d∣n∑μ(d)(1)d=1∗1⇔d(n)=∑d∣n1(2)d=1*1\Leftrightarrow d(n)=\sum_{d|n}1 \tag{2}d=1∗1⇔d(n)=d∣n∑1...原创 2020-04-04 11:09:32 · 502 阅读 · 0 评论 -
ACM多项式算法入门
在摸索了很久很久,还是没找到多项式的正确入门方式,所以尝试着自己写一下多项式乘法对于多项式A(x),B(x)A(x),B(x)A(x),B(x) A(x)=anxn+an−1xn−1+an−2xn−2+an−3xn−3+...+a1x+a0A(x)=a_nx^n + a_{n-1}x ^ {n-1} + a_{n-2}x ^ {n-2} + a_{n-3}x ^ {n-3} + ... + ...原创 2020-03-30 20:44:06 · 844 阅读 · 0 评论 -
Codeforces Round #553 (Div. 2) E - Number of Components
要求这个所有的和,感觉不是很好想首先这个图,是一条长链。对于联通的 i 和 i+1 两个点,考虑他们对答案的贡献,如果他们不联通,那么对答案的贡献就是1对于 l <= ai <= r 同时使得 ai+1 > r || ai+1 < l 里所有的 l 和 r,对答案的贡献都是1反之对于l <= ai+1 <= r 且 ai 不在范围内,所有...原创 2019-04-20 22:45:21 · 257 阅读 · 0 评论 -
Codeforces Round #552 (Div. 3) G. Minimum Possible LCM
求数组中,lcm最小的一对数的下标可以考虑使用筛法,因为 LCM = a*b / GCD(a,b) 所以,对于任意的一对数来说,如果他们的gcd一样,那么这两个数越小越好。所以枚举i = gcd,找到最小的两个数gcd(a,b) = i, 求出他们的lcm,然后记录最小值即可。这里被坑了半天的原因竟然是自己写的lcm。c++17有一个库函数lcm,没有调用自己写的参数是longlong...原创 2019-04-20 22:36:02 · 164 阅读 · 0 评论 -
P5239 回忆京都(3月洛谷月赛)
对任意给定的n和m,求 首先我们需要组合数表,可以使用递推公式将所求的组合数放在一个矩阵里面,i 行 j 列表示 C(i,j)代码如下:void solve(){ C[1][0] = C...原创 2019-03-03 10:06:47 · 315 阅读 · 0 评论 -
容斥原理
容斥原理今天学习了容斥原理上述为容斥原理的公式,推导建议百度。我们发现,当我们要求一个集合的并集的时候,可以很好的利用容斥原理来求解。那么我们可以得到一些很好的性质。注意到偶数个集合的交集前为加号,而奇数个集合交集前面为减号。项的个数为2^k,原理为n个集合的排列组合那么我们可以解决如下问题HDU-4135 : https://vjudge.net/problem/HDU-4...原创 2020-04-04 10:55:53 · 310 阅读 · 0 评论 -
Codeforces Round #514 (Div. 2), problem: (C) Sequence Transformation
传送门:http://codeforces.com/contest/1059/problem/C这个c题还挺有意思的,一开始实在是看不懂题,后来理解了,要字典序(误)最大,就必须越快增加整个数列的gcd越好。注意到这个数列是有序而且从1到n,那么先假设n比较大,这个时候gcd是1,我们要删掉最少的数让gcd改变,最少删掉多少呢?n范围内,是2这个数的倍数的数的个数,永远比是其他数的倍数...原创 2018-10-06 13:53:08 · 222 阅读 · 0 评论 -
Codeforces Round #489 (Div. 2) ---- D - Nastya and a Game
参考了别人的博客,已注明为转载这也是看了题解搞定的,这题很巧妙的利用了范围的问题,我们先略过所有是1的数,(a1 + .... + an) *k 这个的最大范围是 n*k*1e8 = 2e18,接近LL_MAX 的范围,那也就是说,对于至少为2的数来说,64个数相乘就能爆掉这个答案,因此答案连续的段去掉1之后,至多只可能有64个数,那么再考虑1,因为1对乘积没有影响,因此我们可以把连续的...转载 2018-09-15 17:05:14 · 255 阅读 · 0 评论 -
Codeforces Round #489 (Div. 2) ---- C - Nastya and a Wardrobe
这是一个求期望的题,因为每天有50%的可能出现被吃掉一件衣服的情况,因此这些每天的情况就构成了一颗二叉树根结点是x ,左节点是 x << 1 -1 右节点是 x << 1 ,那么假设有k天,根据二叉树的性质,在第k天就有2^k个节点,分别为2^k * x , 2^k*x -1 ,2^k*x - 2, 2^k*x - 3 ……2^k*x - (2^k-1) ,每个...原创 2018-09-15 16:54:18 · 216 阅读 · 0 评论 -
Codeforces Round #489 (Div. 2) ---- B. Nastya Studies Informatics
这题给了我们gcd和lcm,和范围,求在范围内有多少对这样的数满足gcd = x , lcm = y 我们可知这两个数的乘积,如果枚举它的因子非常慢O(1e9) ,因为两个数都是gcd的倍数,那么我们可以分别设他们是gcd 的k1倍,k2倍,因此就有 k1 * x * k2 * x = x * y => k1 * k2 = y / x; 而 y / x 最大 就是 ...原创 2018-09-15 16:46:10 · 275 阅读 · 0 评论 -
poj - 1061 青蛙的约会
https://blog.youkuaiyun.com/sdutstudent/article/details/78795643附上一个超nice的exgcd的讲解,这里就是记录一下学习过程中卡住的一些地方我们根据某些追击问题的经验可以得出 t * m + x = t * n + y + k * L 其中 t 是跳跃次数, k 是一个常数,代表跑了几圈事实上, 我们用ex_gcd 求的方程...原创 2018-09-12 00:16:57 · 734 阅读 · 0 评论 -
HDU-4704
组合数学+费马小定理化简首先是隔板的思想,s(i) 的意思可以解读为把n个木条排成一排,分成 i 份,那么我们根据隔板法,在n个木条就有n-1个空位可以加入隔板(因为每个数是正整数),那么s(i) = C( n-1 , i -1)那么s(1) + s(2) + ... + s(n) = 2 ^ (n-1) 答案即为 2 ^ (n-1) % mod但是因为n特别大,可以用费马小...原创 2018-09-11 22:36:06 · 415 阅读 · 2 评论