上一页 1 ··· 3 4 5 6 7 8 9 10 下一页
摘要: 中国剩余定理 引入 在《孙子算经》中有这样一个问题:“今有物不知其数,三三数之剩二(除以3余2),五五数之剩三(除以5余3),七七数之剩二(除以7余2),问物几何?”这个问题称为“孙子问题”,该问题的一般解法国际上称为“中国剩余定理”。 具体解法分下面三步: ① 找出三个数:从3和5的公倍数中找出被 阅读全文
posted @ 2019-09-05 15:20 Vivid-BinGo 阅读(454) 评论(0) 推荐(0) 编辑
摘要: BSGS BSGS 用于当gcd(A,p)=1时,求方程的解。 由费马定理可知,当gcd(A,p)=1,且p为素数时,有,所以得到。 令,x=am-b,,,得到,。 通过枚举用hash维护任意一侧,再枚举另一侧,判断是否在hash,若在则答案为am-b。 例:poj 2417 Discrete Lo 阅读全文
posted @ 2019-09-03 14:15 Vivid-BinGo 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 意义 若有 ,则x为a在模p下的逆元。 一个分数是不能直接模运算的,但是可以进行乘法运算 实现 欧拉定理 由欧拉定理得,若gcd(a,p)=1,则 得到,所以,为a在模p下的逆元。 费马小定理 对于质数p,若gcd(a,p)=1,则 得到 ,是a在模p下的逆元,直接快速幂求解即可。 扩展欧几里得 由 阅读全文
posted @ 2019-08-28 19:24 Vivid-BinGo 阅读(200) 评论(2) 推荐(0) 编辑
摘要: 定义 树状数组或者二叉索引树也称作Binary Indexed Tree,又叫做Fenwick树。 它的查询和修改的时间复杂度都是log(n),空间复杂度则为O(n). 树状数组可以将线性结构转化成树状结构,从而进行跳跃式扫描,通常使用在高效的计算数列的前缀和,区间和。 理解 在树状数组之前如果求和 阅读全文
posted @ 2019-08-28 13:24 Vivid-BinGo 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 定义 线段树是常用来维护区间信息的数据结构。 线段树可以在$O(logN)$的时间复杂度内实现单点修改、区间修改、区间查询(区间求和,求区间最大值,求区间最小值)等操作。 实现 以数组 arr{9,3,-1,8,4,-2} 为例 (下标从 1 开始) 存储 //区间[L,R], w表示维护的数据, 阅读全文
posted @ 2019-08-27 16:05 Vivid-BinGo 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 简介 Manachar 算法在 O(n) 时间处理出以字符串中每一个字符为中心的回文串半径。Manacher 算法通过将原字符串每个字符的左右两边都插入一个分隔符的方式,将长度为奇数的回文串和长度为偶数的回文串一起考虑。(分隔符不在原串中出现,一般情况下可以用 # 号代表) 预处理 实现 马拉车的主 阅读全文
posted @ 2019-08-27 11:13 Vivid-BinGo 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 524288K,其他语言1048576K 64bit IO Format: %lld 空间限制:C/C++ 524288K,其他语言1048576K 64bit IO Format: %lld 题目描述 Dr. JYY has just 阅读全文
posted @ 2019-08-26 10:12 Vivid-BinGo 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 折半枚举 折半枚举是一种很好用的枚举方法,比如有时集合过大无法全部搜索,但刚好只需要他们的和或其他可以处理出的东西,就可以一半一半搜。 练习 poj 2785 4 Values whose Sum is 0 2019牛客暑期多校训练营(第九场) Knapsack Cryptosystem 阅读全文
posted @ 2019-08-25 15:16 Vivid-BinGo 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 Amy asks Mr. B pro 阅读全文
posted @ 2019-08-25 13:42 Vivid-BinGo 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 最大公约数 最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。 最小公倍数 两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。 性质 gcd(a,b)=gcd(b,a) gcd(-a,b)=gcd(a,b) gcd(a,a 阅读全文
posted @ 2019-08-23 16:26 Vivid-BinGo 阅读(421) 评论(0) 推荐(0) 编辑
摘要: 定义 对于不完全为0的整数a,b,gcd(a,b)表示a,b的最大公约数。那么一定存在整数x,y 使得gcd(a,b)=ax+by。 求解 求一组解x,y,使得 因为欧几里得定理,可以得到 令x',y'为变量,得 所以 因为 所以 整理 得到 由最后的表达式可以看出,我们可以通过递归进行求解。 模线 阅读全文
posted @ 2019-08-23 15:43 Vivid-BinGo 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 定义 对正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为Euler's totient function、φ函数、欧拉商数等。例如φ(8)=4,因为1,3,5,7均和8互质。 内容 通式: 其中p1, p2……pn为x的所有质因数,x是不为0的整数 阅读全文
posted @ 2019-08-22 17:32 Vivid-BinGo 阅读(466) 评论(0) 推荐(0) 编辑
摘要: 经典: 显然如果要判断一定范围内的素数,这种算法很慢。 埃拉托斯特尼(Eratosthenes)筛法 欧拉(Euler)筛法 为什么当 i|prime[j] 时,就可以跳出循环? ,令i|prime[j]=m,所以,可以看出i*prime[j+1]可以由k'*prime[j]得到,又因为prime[ 阅读全文
posted @ 2019-08-21 19:48 Vivid-BinGo 阅读(158) 评论(0) 推荐(0) 编辑
摘要: Prime Distance Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 29401 Accepted: 7556 Description The branch of mathematics called number the 阅读全文
posted @ 2019-08-21 19:31 Vivid-BinGo 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 时间 阅读全文
posted @ 2019-08-20 17:23 Vivid-BinGo 阅读(187) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 下一页