数学
文章平均质量分 71
hzt_Owen
这个作者很懒,什么都没留下…
展开
-
【hdu5006】基尔霍夫+高斯消元
给出n个点m条边的无向图每条边有权值,为0或1,表示两点间电阻可能有自环与重边•给定S,T•求从S到T的电阻•1 ≤ N ≤ 10000, M = 4N•无向图的边与边权均为等概率随机生成的原创 2014-11-22 14:26:37 · 632 阅读 · 0 评论 -
【bzoj3992】序列统计 FFT 原根
给一个集合,用这个集合组成的长度为n的序列中,在mod m下乘积为x的个数。n 首先可以把乘积变为原根的指数相加的形式,然后取模FFT即可。#include #include #include #include #include #define Rep(i, x, y) for (int i = x; i <= y; i ++)#define Dwn(i, x, y) for原创 2016-01-04 14:35:58 · 842 阅读 · 0 评论 -
Polya定理
burnside引理:在一个置换群上的等价类为:(1 / n) * sigma(一个置换的不动点个数)对于旋转的问题,暴力统计要枚举每种置换,则循环节长度为(n, i),可以发现只要枚举n的约数k,统计后乘上phi(n / k)即可。对于翻折是和奇偶有关, 通常有ans[n] = (1/2) * (f[n] + f[ floor(n + 1 / 2) ]),有时需根据奇偶分类处理。原创 2015-12-24 09:09:25 · 632 阅读 · 0 评论 -
【Bestcoder 68C】function 莫比乌斯函数
已知 n2−3n+2=∑d|nf(d) n^2 - 3n + 2 = \sum_{d | n} f(d) 求 ∑ni=1f(i) \sum_{i=1}^{n}f(i) n <= 10^9 莫比乌斯反演得:f(n)=∑d|ng(d)∗mu(n/d) f(n) = \sum_{d|n}g(d)*mu(n/d) ∑i=1nf(i)=∑i=1ng(i)∗∑j=1n/imu(j) \sum_{i原创 2016-01-04 15:12:40 · 704 阅读 · 0 评论 -
【Topcoder SRM 641】BitToggler 期望 高斯消元
有一个长度为n的01数列a和一个指针,每次随机将指针移至j,并将aj取反,花费为|i - j|,当数列全0或全1停止,求期望花费。n 使用期望的线性性,每次只统计i到j的贡献,这样其他位置就没有区分了,压个状态就可以消元了。#include #include #include #include #include #include #define Rep(i, x,原创 2016-01-08 13:24:17 · 950 阅读 · 0 评论 -
【TCO 2013 3A】TrichyInequality
3A TrichyInequalityDescription求出满足 ∑mi=1xi≤s,∀i≤m,xi>0,∀i≤n,xi≤t . 的向量 X 的解数。Difficulty★★★MainAlgorithm矩乘加速ComplexityO((m−n)3logn)Solution标解给的 O((m−n)2) 太科幻了…原创 2015-09-23 15:41:00 · 975 阅读 · 0 评论 -
【TCO 2013】Litpanels
2B LitPanelsDescription一个 的棋盘,选择两个 的矩形(可以相交),在矩形内任意染黑格子,问最后棋盘状态的方案数。不妨先把结果分类。对答案的状态用一个 的包围盒包裹住,分别讨论 包围盒的方案数。考虑我们需要满足什么条件。1、包围盒的每一条边都必须有至少一个染色点。2、能用两个 的矩形包裹所有染色点。将第二个条件转化一下,考虑到原创 2015-09-22 15:39:37 · 538 阅读 · 0 评论 -
【SRM 565 UnknownTree】计数 分类讨论
一个有N + 3个点的树,告诉你123号点到其他点的距离,求合法的边权为正整数的树个数。#include #include #include #include #include #include #define Rep(i, x, y) for (int i = x; i <= y; i ++)#define Dwn(i, x, y) for (int i = x; i >= y原创 2016-01-12 16:33:21 · 766 阅读 · 0 评论 -
【Contra】 矩阵乘法优化 dp
偶然间,chnlich发现了他小时候玩过的一个游戏“魂斗罗”,于是决定怀旧。但是这是一个奇怪的魂斗罗MOD。有N个关卡,初始有Q条命。每通过一个关卡,会得到u分和1条命,生命上限为Q。其中u=min(最近一次连续通过的关数,R)。若没有通过这个关卡,将会失去1条命,并进入下一个关卡。当没有生命或没有未挑战过的关卡时,游戏结束,得到的分数为每关得到的分数的总和。由于chnlich好久不玩这个游戏了,原创 2014-12-11 16:31:17 · 1514 阅读 · 0 评论 -
【hdu5072】莫比乌斯
给出n个数,问其中有多少三元组(a, b, c)使得 [(a, b) = (b, c) = (a, c) = 1] or [(a, b) ≠ 1 and (a, c) ≠ 1 and (b, c) ≠ 1]。n 首先可以把问题抽象为有n个点,两两连边,有红边和蓝边,问三边同色三角形有多少。然后考虑算反面,发现只要找从一个点出发的两种边分别有几条并相乘,加起来除二即可。所以只用算与a原创 2014-12-10 21:45:04 · 802 阅读 · 0 评论 -
【bzoj2480】Mod 扩展大步小步
http://blog.miskcoo.com/2015/05/discrete-logarithm-problem #include #include #include #include #include #include #define Rep(i, x, y) for (int i = x; i <= y; i ++)#define Dwn(i, x, y) for (in原创 2015-10-09 08:38:44 · 932 阅读 · 0 评论 -
数学模块总结
最近学的数论知识:线性筛法,高斯消元,导数积分,扩欧,组合数学。用数论优化的:dp斜率优化。先说线性筛,分为筛素数,欧拉函数,逆元,莫比乌斯(待学)。筛素数:没啥好说的……筛逆元:先求N[i]表示a1*a2*……*ai,再求P[n]表示N[n]的逆元,将P[i]*a[i-1]即可得到P[i-1]筛欧拉函数:根据性质脑补,求单个phi(n)用sqrt(n)的复杂度。原创 2014-11-25 21:52:40 · 519 阅读 · 0 评论 -
【bzoj2854】高斯消元
求解N元一次方程组,N考虑大素数取模下做,整数除法用逆元即可,再用中国剩余定理合并,注意选的素数不能使方程多解(矩阵满秩)。#include #include #include #include #include #include #define Rep(i, x, y) for (int i = x; i <= y; i ++)using namespace std;ty原创 2014-11-25 22:39:40 · 666 阅读 · 0 评论 -
【bzoj2956】模积和
求∑∑((n mod i)*(m mod j))其中1若没有i不等于j,那么只需求sigma(n%i) * sigma(m%i)。这个可以发现商的种类只有sqrt(n)级别。枚举商发现余数是等差数列。对于i = j,和刚才类似,考虑在n / i与m / i不变时,由两个等差数列。(s1 + i * p) * (s2 + i * q) 拆开即可。#include #include #原创 2014-12-11 10:27:31 · 854 阅读 · 0 评论 -
【bzoj2440】莫比乌斯
题目:全然平方数为含有平方数因子的数,求第n个非全然平方数。 n 容易想到先二分,再容斥原理(莫比乌斯)。num = (mid / i) * mu[i].#include #include #include #include #include #include #define Rep(i, x, y) for (int i = x; i <= y; i ++)#defin原创 2014-12-08 22:25:40 · 515 阅读 · 0 评论 -
【bzoj 2179】FFT
高精乘,就是裸的FFT啦……#include #include #include #include #include #include #define Rep(i, x, y) for (int i = x; i <= y; i ++)#define RepE(i, x) for (int i = pos[x]; i; i = g[i].nex)#define Dwn(i, x原创 2015-03-09 10:55:31 · 514 阅读 · 0 评论 -
【spoj7001】莫比乌斯反演
题目:给出n,求出有多少小于n的三元组(自然数),使得gcd(x, y, z)为0, 即从三维空间(0, 0, 0) 可以看到的点数。莫比乌斯反演两种形式此题用的是第二种,设f(m)为m | gcd(x, y, z)个数,g(m)为gcd(x, y, z) = m 的个数。因为f(x) = (n/x) ^ 3, 且f(x) = sigma{ x|d, g(d) }, 所以g原创 2014-12-06 21:08:10 · 811 阅读 · 0 评论 -
【TCO2A ThePowers】容斥原理
考虑两个数的次幂得到了相同结果,.则 . 故 是一个整数。同理可证 是一个整数。那么 我们发现,只有有着共同的 的数才会产生冲突。而且冲突的数量与 无关。只与最大的 的次数有关。我们预处理出来拥有 次的 能产生的贡献。即 的不同答案数。其中 .那么就变为 的不同答案数。由于不同的 x 能达到的数不同,为了方便处理,我们分别处理 中的数个数。这部分需要原创 2015-09-21 19:39:03 · 498 阅读 · 0 评论 -
【CF 235E】Number Challenge
求 1 ≤ a, b, c ≤ 2000#include #include #include #include #include #define Rep(i, x, y) for (int i = x; i <= y; i ++)#define Dwn(i, x, y) for (int i = x; i >= y; i --)#define RepE(i, x原创 2015-10-19 11:34:40 · 768 阅读 · 0 评论 -
【poj1811】Miller_Rabin and Pollard_rho
Miller_Rabin算法 O(logn)即可判断素数。由费马小定理得知 a ^ (n-1) = 1 (mod n), 所以可以随机a,然后判断。判断方法:设n - 1 = (2 ^ r) * d (d % 2 == 1)。若a ^ d == 1 (mod n) 或存在 0 Pollard_rho还不太明白……#include #include #include #i原创 2014-12-28 10:57:43 · 471 阅读 · 0 评论