随笔分类 - 数学
数论,组合数学
摘要:预处理出来所有的双平方数,然后枚举地一个和第二个数。 中间要加一个剪枝。因为知道了首项和公差和项数就能求出最后一项是不是可行的了。
阅读全文
摘要:结论:(fib_n,fib_m)=fib_{(n,m)} 证明:参考大佬的blog OrzCTY (我怎么记得以前板板讲过Orz 然后用矩阵快速幂随便做了。。。 #include <iostream> #include <cmath> #include <cstdio> #inclu
阅读全文
摘要:期望DP。 发现第i次的期望分数和第i-1次的连击次数有关。 设第i次连击次数是g[i] 因为是三次方,f[i]=f[i-1]+(g[i-1]*3+g[i-1]*g[i-1]*3+1)×p[i] 因为(x+1)3展开就是大概这个样子。 但是期望不可以直接乘。 所以我们维护一个次数的平方和次数即可。
阅读全文
摘要:阶梯型问题考虑卡特兰数有惊喜哦。。。 这个写的很明了Orz 高精度可是烦人啊。。 python大法好! a=input() c=1 for num in range (a+2,a*2+1): c=c*num for num in range (1,a+1): c=c/num print c
阅读全文
摘要:1.费马小定理|欧拉定理 由费马小定理得当p为质数,(a,p)=1时,ap-1≡1 mod p 所以ap-2≡a-1 由欧拉定理当(a,p)=1但p可以不为质数,aΦ(p)≡1 mod p 2.扩展欧几里德 设a的逆元为x,则可以视作ax≡1 mod p 可以视作 ax-bp=1 然后用扩展欧几里德
阅读全文
摘要:XiaoX早就切了Orz 这道题是个组合数学题。 里面用到了卡特兰数的思想。 我们可以把这个操作放到坐标系上,一开始有个点在(0,0),然后把1看作(+1,+1),0看做(+1,-1) 然后我们就可以把问题视作从(0,0)出发,到(n+m,n-m),不经过y=-1的方案数。 经过y=-1的就可以对称
阅读全文
摘要:郝神并没有令我明白这个。 但是巨神的题解太强了。 #include <iostream> #include <complex> #include <cmath> #include <cstdio> #include <cstring> using namespace std; const int N
阅读全文
摘要:组合数学+容斥原理 设f[i][j]表示第i个序列中的j的倍数的个数。 然后以j为gcd的贡献就是(π(f[i][j]+1) )-1 然后从大到小枚举j,删去j的倍数的贡献即可。
阅读全文
摘要:一道好♂玩的题。 考虑怎么才能让这个序列满足条件。 考虑到这个高度是个n的排列,然后我们可以发现n一定是左右都可见的,然后就可以认为左边的前缀max有A-1个值,右边的后缀max有B-1个值。 可以认为成从n-1个数中取A+B-2个数组成一个圆排列,A-1个放左边。 所以这样的话答案就是strlin
阅读全文
摘要:大意:给你一个平面上N(N<=100000)个点,问相切于x轴的圆,将所有的点都覆盖的最小半径是多少。 计算几何???Div2的D题就考计算几何???某人昨天上课才和我们说这种计算几何题看见就溜。。。。 打完比赛才发现好像并不用计算几何,实则是一个二分答案的水题。。 发现如果点在x轴两侧就肯定不行,
阅读全文
摘要:Informatik verbindet dich und mich Informatik verbindet dich und mich 扩展欧拉定理+线段树。 Informatik verbindet dich und mich 由扩展欧拉定理得,cc...最终上面的指数必定变成1.(不会打这个
阅读全文
摘要:容斥+背包。 先做完全背包,然后就去掉用的硬币大于限量的,用容斥原理去下重就行了。 #include <iostream> #include <cstdio> #include <cstring> using namespace std; const int N=100005; int c[5],T
阅读全文
摘要:有个套路:计算单调不降的,可以给第i项加一个i,转化成单调递增的,然后就变成了在值域[L+1,R+N]中取1~n个数。 复制一下popoqqq大佬的图片 M=R-L+1。 式子就变成了这个样子。 Lucas定理随便做了。 #include <iostream> #include <cstdio> #
阅读全文
摘要:???签到题??? 用BSGS做,但是我没有看见m一定是素数,打了个ExBSGS...... 大概意思可以把式子转化成10n≡9*K+1 mod m 然后就是BSGS的板子了 然后因为K,M巨达1011,因此需要用龟速乘。 #include <iostream> #include <cstdio>
阅读全文
摘要:题面:Please contact lydsy2012@163.com! 给出n个数(A1...An)现求一组整数序列(X1...Xn)使得S=A1*X1+...An*Xn>0,且S的值最小 由裴蜀定理, 设a1,a2,a3......an为n个整数,d是它们的最大公约数,那么存在整数x1.....
阅读全文
摘要:毫无思路,Orz了一下大佬的思路%%%。 大概就是因为k比n小的多,我们知道约瑟夫环有个公式是fn=(fn-1+k) mod n 可以改一下,改成fn+p=(fn+pk) mod (n+p) 但是这样的话就不对了,因为有mod,模数是改变的。 pk肯定大于p。然后我们可以让这个模数等价,就是mod
阅读全文
摘要:结论:一个图的生成树个数等于它的度数矩阵减邻接矩阵得到的矩阵(基尔霍夫矩阵)的任意一个n 1阶主子式的行列式的绝对值 证明:不会 求法:高斯消元 例题:[HEOI2013]小Z的房间 cpp include include include define int long long using nam
阅读全文
摘要:裸杜教筛板子。 cpp include include include using namespace std; typedef long long ll; const int N=7000000; mapph,mu; int prime[N 3],tot;short miu[N]; bool vi
阅读全文