08 2019 档案
摘要:意义 若有 ,则x为a在模p下的逆元。 一个分数是不能直接模运算的,但是可以进行乘法运算 实现 欧拉定理 由欧拉定理得,若gcd(a,p)=1,则 得到,所以,为a在模p下的逆元。 费马小定理 对于质数p,若gcd(a,p)=1,则 得到 ,是a在模p下的逆元,直接快速幂求解即可。 扩展欧几里得 由
阅读全文
摘要:定义 树状数组或者二叉索引树也称作Binary Indexed Tree,又叫做Fenwick树。 它的查询和修改的时间复杂度都是log(n),空间复杂度则为O(n). 树状数组可以将线性结构转化成树状结构,从而进行跳跃式扫描,通常使用在高效的计算数列的前缀和,区间和。 理解 在树状数组之前如果求和
阅读全文
摘要:定义 线段树是常用来维护区间信息的数据结构。 线段树可以在$O(logN)$的时间复杂度内实现单点修改、区间修改、区间查询(区间求和,求区间最大值,求区间最小值)等操作。 实现 以数组 arr{9,3,-1,8,4,-2} 为例 (下标从 1 开始) 存储 //区间[L,R], w表示维护的数据,
阅读全文
摘要:简介 Manachar 算法在 O(n) 时间处理出以字符串中每一个字符为中心的回文串半径。Manacher 算法通过将原字符串每个字符的左右两边都插入一个分隔符的方式,将长度为奇数的回文串和长度为偶数的回文串一起考虑。(分隔符不在原串中出现,一般情况下可以用 # 号代表) 预处理 实现 马拉车的主
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 524288K,其他语言1048576K 64bit IO Format: %lld 空间限制:C/C++ 524288K,其他语言1048576K 64bit IO Format: %lld 题目描述 Dr. JYY has just
阅读全文
摘要:折半枚举 折半枚举是一种很好用的枚举方法,比如有时集合过大无法全部搜索,但刚好只需要他们的和或其他可以处理出的东西,就可以一半一半搜。 练习 poj 2785 4 Values whose Sum is 0 2019牛客暑期多校训练营(第九场) Knapsack Cryptosystem
阅读全文
摘要:时间限制: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
阅读全文
摘要:最大公约数 最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。 最小公倍数 两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。 性质 gcd(a,b)=gcd(b,a) gcd(-a,b)=gcd(a,b) gcd(a,a
阅读全文
摘要:定义 对于不完全为0的整数a,b,gcd(a,b)表示a,b的最大公约数。那么一定存在整数x,y 使得gcd(a,b)=ax+by。 求解 求一组解x,y,使得 因为欧几里得定理,可以得到 令x',y'为变量,得 所以 因为 所以 整理 得到 由最后的表达式可以看出,我们可以通过递归进行求解。 模线
阅读全文
摘要:定义 对正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为Euler's totient function、φ函数、欧拉商数等。例如φ(8)=4,因为1,3,5,7均和8互质。 内容 通式: 其中p1, p2……pn为x的所有质因数,x是不为0的整数
阅读全文
摘要:经典: 显然如果要判断一定范围内的素数,这种算法很慢。 埃拉托斯特尼(Eratosthenes)筛法 欧拉(Euler)筛法 为什么当 i|prime[j] 时,就可以跳出循环? ,令i|prime[j]=m,所以,可以看出i*prime[j+1]可以由k'*prime[j]得到,又因为prime[
阅读全文
摘要:Prime Distance Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 29401 Accepted: 7556 Description The branch of mathematics called number the
阅读全文
摘要:时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 时间
阅读全文
摘要:单调栈 定义: 单调栈是指一个栈内部的元素是具有严格单调性的一种数据结构,分为单调递增栈和单调递减栈。 性质: ① 满足从栈顶到栈底元素具有严格的单调性。 ② 满足栈的后进先出特性,越靠近栈底的元素越早进栈。 单调队列 定义: 单调队列是指一个队列内部的元素具有严格单调性的一种数据结构,分为单调递增
阅读全文
摘要:定义: 尺取法:尺取法是一种比较基础的算法,一般用来解决具有单调性的区间问题。尺取法通常是根据实际情况不断地推进区间左右端点以得出答案。尺取法比直接暴力枚举区间效率高很多,尤其是数据量大的时候,所以说尺取法是一种高效的枚举区间的方法,是一种技巧,一般用于求取有一定限制的区间个数或最短的区间等等。 使
阅读全文
摘要:Bound Found Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 7891 Accepted: 2572 Special Judge Description Signals of most probably extra-te
阅读全文
摘要:Charlie's Change Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 5731 Accepted: 1849 Description Charlie is a driver of Advanced Cargo Move
阅读全文
摘要:以 UVA 624 CD 为例,题为简单的01背包,重点看路径的记录部分。 代码1: 代码2:
阅读全文
摘要:01背包 定义: 有N件物品和一个容量为V的背包。每种物品只有一件,选或者不选,第i件物品的体积是w[i],价值是v[i]。求解将哪些物品装入背包可使这些物品的体积总和不超过背包容量,且价值总和最大。 实现: 令dp[i][j]表示选择前i件物品,背包体积为j时的最大价值。 因为01背包中每件物品只
阅读全文
摘要:I love sneakers! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8105 Accepted Submission(s): 321
阅读全文
摘要:Coins Time Limit: 3000MS Memory Limit: 30000KTotal Submissions: 48194 Accepted: 16209 Description People in Silverland use coins.They have coins of va
阅读全文
摘要:Cash Machine Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 45189 Accepted: 16490 Time Limit: 1000MS Memory Limit: 10000KTotal Submissions:
阅读全文
摘要:Piggy-Bank Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 42454 Accepted Submission(s): 20929 Pr
阅读全文
摘要:Duty Free Shop Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 1896 Accepted: 730 Special Judge Description Pedro travelled to Europe to ta
阅读全文
摘要:I NEED A OFFER! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 40569 Accepted Submission(s): 161
阅读全文
摘要:饭卡 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 52979 Accepted Submission(s): 17963 Problem De
阅读全文
摘要:定义 树的直径指树上距离最远的两点间的距离。 性质 ① 直径两端点一定是两个叶子节点。 ② 距离任意点最远的点一定是直径的一个端点,这个基于贪心求直径方法的正确性可以得出。 ③ 对于两棵树,如果第一棵树直径两端点为(u,v),第二棵树直径两端点为(x,y),用一条边将两棵树连接,那么新树的直径一定是
阅读全文
摘要:D. Book of Evil time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output D. Book of Evil time lim
阅读全文
摘要:定义: ST表是一种利用dp求解区间最值的倍增算法,解决RMQ(区间最值问题)的强有力的工具。 实现: 预处理: 令原数组w[],dp[i][j]表示区间的最大值。 得转移方程: dp[i][0]=w[i] dp[i][j]=max(dp[i][j-1], dp[i+(1<<j-1)][j-1])
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 524288K,其他语言1048576K 64bit IO Format: %lld 空间限制:C/C++ 524288K,其他语言1048576K 64bit IO Format: %lld 题目描述 Gromah and LZR h
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 524288K,其他语言1048576K Special Judge, 64bit IO Format: %lld 空间限制:C/C++ 524288K,其他语言1048576K Special Judge, 64bit IO Form
阅读全文
摘要:时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 65536K,其他语言131072K 64bit IO Format: %lld 空间限制:C/C++ 65536K,其他语言131072K 64bit IO Format: %lld 题目描述 The Wow village is o
阅读全文
摘要:① Fibonacci数列:F(0)=1, F(1)=1, F(n)=F(n-1)+F(n-2),求F[n]。 ② 数列F[n]=F[n-1]+F[n-2]+1,F[1]=F[2]=1,求F[n]。 ③ 数列F[n]=F[n-1]+F[n-2]+n+1,F[1]=F[2]=1,求F[n]。 ④ 数列
阅读全文
摘要:Another kind of Fibonacci Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 3509 Accepted Submissio
阅读全文
摘要:Recursive sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 5120 Accepted Submission(s): 2
阅读全文
摘要:1878: [SDOI2009]HH的项链 Description HH有一串由各种漂亮的贝壳组成的项链。HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一 段贝壳,思考它们所表达的含义。HH不断地收集新的贝壳,因此他的项链变得越来越长。有一天,他突然提出了一 个问题:某一段贝壳中,
阅读全文
摘要:题目描述 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… 具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,
阅读全文
摘要:时间限制:C/C++ 5秒,其他语言10秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 No, it's not Frid
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 You are given an I
阅读全文
摘要:定义: 离散化,把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。 理解: 简单粗暴的举个栗子。通过数轴比较1和100000000大小,那么想都不用想100000000肯定比1大。如果必须通过数轴比较呢?没有人会画一个长为大于100000000的数轴找到一个准确的点去比较。只会画出
阅读全文
摘要:分块即优美的暴力,通过将数组分成小块降低复杂度。分块可以维护线段树不好维护或根本维护不了的信息。线段树维护的信息必须具有可合并性,单调性等,而分块对信息性质的要求并没有那么苛刻。但在思想上,分块又与线段树十分类似,通过标记等操作来降低复杂度。 基本定义 一个长度为N的序列,块的大小为block,从序
阅读全文
摘要:题解:分块。哇,毒瘤题ORZ,提交了好几页TLE,不过是好题。先离散化再处理。区间的众数有三种情况:①L块中L及之后的部分 ②R块中R及之前的部分。 ③L,R之间若干个整块范围的众数。预处理每两个整块之间的众数,边块暴力,块的大小玄学开。 代码:
阅读全文
摘要:题解:分块。sum[i]维护 i 块增加的数,m[i]维护 i 块扩大的倍数。及时更新。=w[r] * m[r] + sum[r]。 代码:
阅读全文
摘要:题解:块状链表。最简陋的块状链表就能过。 代码:
阅读全文
摘要:题解:分块。操作只有开方,一个数经历几次开方后就会变成1。暴力开方,flag[ ] 标记此块是否全被开方为1。 代码: 题解:分块。与数列分块入门5类似。若某块全为同一个值,则用flag[ ]标记,直接计算,反之,暴力统计。 代码:
阅读全文
摘要:题解:分块。用vector维护每个块,二分查找。及时更新边块即可。当前值+此块增加的值<c*c,即当前值<c*c-块同时增加的值。 代码: 题解:分块。与数列分块入门 2类似,稍微修改即可。 代码:
阅读全文
摘要:题解:分块。 代码: 题解:分块。 代码:
阅读全文
摘要:2002: [Hnoi2010]Bounce 弹飞绵羊 时间限制: 10 Sec 内存限制: 259 MB提交: 16133 解决: 8253 题目描述 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着
阅读全文
摘要:快速乘: 快速幂: 矩阵快速幂: 矩阵快速幂和快速幂相同,只不过把数字换成了矩阵。 十进制快速幂: 利用二进制的性质有快速幂,当然也可以利用十进制进行快速幂。当指数非常大时,需要通过十进制快速幂对数据进行过渡处理,再利用二进制快速幂求解。
阅读全文
摘要:时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K Special Judge, 64bit IO Format: %lld 空间限制:C/C++ 262144K,其他语言524288K Special Judge, 64bit IO Format
阅读全文
摘要:Tree2cycle Time Limit: 15000/8000 MS (Java/Others) Memory Limit: 102400/102400 K (Java/Others) Total Submission(s): 4405 Accepted Submission(s): 1055
阅读全文
摘要:Computer Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 37614 Accepted Submission(s): 6579 Prob
阅读全文

浙公网安备 33010602011771号