随笔分类 - 数学
摘要:将(x,y)转化成(x+y,x-y)可以将切比雪夫距离转化成曼哈顿距离(自己推一推) A、B的切比雪夫距离就是A‘、B‘曼哈顿距离的一半。 那么可以将x、y分离处理,排序中位数即可。 注意如果最后选的最优的X、Y代回去不是整数,要在其上下左右中选个最优方案。 #include<algorithm>
阅读全文
摘要:x*2^m==l (mod n+1)x=(n/2+1)^m*l mod n+1 #include<algorithm> #include<iostream> #include<cstdlib> #include<cstring> #include<cstdio> #include<cmath> #i
阅读全文
摘要:利用前缀和选m个区间等价于选m个数 从最高位开始找,如果这一位至少有m个0,则可以为0,该位为1的后面就不可以选了。 还要注意,最后一个数如果该位为1,那么这一位必须为1,然后要从62开始枚举,而不是从31
阅读全文
摘要:设S(n,k)=Σ C(n,i) i=0..k 根据lucas定理可以得到 S(n,k) mod p = [ S(n/p,k/p-1)*S(n mod p,p-1)+C(n/p,k/p)*S(n mod p,k mod p) ] mod p 除法均向下取整 预处理0≤n,k<P的C,S值,根据上式递
阅读全文
摘要:#include #include #include #include #include #include #include using namespace std; typedef long double LD; #define N 100010 long double a; int n,T=50; long double m[N],f[N]; int main() ...
阅读全文
摘要:题目大意:给定一个n阶行列式,第i行第j列为GCD(i,j),求这个行列式的值 高斯消元之后发现对角线上的东西是phi 于是线性筛出所有的欧拉函数即可 一开始看题表示不会矩阵的行列式的值,于是搜了一下,发现求起来比较复杂。于是继续翻,发现一种可以这样搞 这里有一个ppt
阅读全文
摘要:可以算出合并多少次。 1 #include<algorithm> 2 #include<iostream> 3 #include<cstdlib> 4 #include<cstring> 5 #include<cstdio> 6 #include<cmath> 7 using namespace s
阅读全文
摘要:x2 ≡ 1 mod n => x2 = k * n + 1 => n | (x + 1) * (x - 1) 令n = a * b,则 (a | x + 1 且 b | x - 1) 或 (a| x - 1 且 b | x + 1) 于是暴力枚举a ∈ [1, sqrt(n)] 就好了 然后直接丢
阅读全文
摘要:首先使用DP预处理,先求出,在不考虑每种硬币个数的限制的情况下,每个钱数有多少种拼凑方案。 为了避免重复的方案被转移,所以我们以硬币种类为第一层循环,这样阶段性的增加硬币。 一定要注意这个第一层循环要是硬币种类,并且初始 f[0] = 1。 之后对于每个询问 (A1, A2, A3, A4, S)
阅读全文
摘要:n=d*(u^2+v^2),枚举d(从1到sqrt(n)),然后判断n/d和d。再枚举一组u,v,如果gcd(u,v)=1,则是一组可行解。枚举八分之一圆,答案乘以8,再加上4个坐标轴上的点。 #include<algorithm> #include<iostream> #include<cstdl
阅读全文
摘要:先打出nand表 0 nand 0=1 1 nand 1=0 0 nand 1=1 1 nand 0=1 容易发现(!a)=a nand a 然后(a&b)=!(a nand b) 然后(a|b)=!((!a)&(!b)) 然后(a^b)=(a|b)&(a nand b) 所以通过nand我们可以实
阅读全文
摘要:这是一道数学题。属于排列组合问题。 题目抽象一下就是有n个格子,用m种颜色染色,求有两个相邻的同色的情况有多少种。 其实反过来考虑更好算。 总的方案数为mn,减去每个相邻的都不同色的情况既可。 考虑每个相邻的都不同色,第一个格子可以用m中,后面的每一个格子都只能用m-1中,所以就是m(m-1)n-1
阅读全文

浙公网安备 33010602011771号