08 2019 档案

摘要:意义 若有 ,则x为a在模p下的逆元。 一个分数是不能直接模运算的,但是可以进行乘法运算 实现 欧拉定理 由欧拉定理得,若gcd(a,p)=1,则 得到,所以,为a在模p下的逆元。 费马小定理 对于质数p,若gcd(a,p)=1,则 得到 ,是a在模p下的逆元,直接快速幂求解即可。 扩展欧几里得 由 阅读全文
posted @ 2019-08-28 19:24 Vivid-BinGo 阅读(208) 评论(2) 推荐(0)
摘要:定义 树状数组或者二叉索引树也称作Binary Indexed Tree,又叫做Fenwick树。 它的查询和修改的时间复杂度都是log(n),空间复杂度则为O(n). 树状数组可以将线性结构转化成树状结构,从而进行跳跃式扫描,通常使用在高效的计算数列的前缀和,区间和。 理解 在树状数组之前如果求和 阅读全文
posted @ 2019-08-28 13:24 Vivid-BinGo 阅读(210) 评论(0) 推荐(0)
摘要:定义 线段树是常用来维护区间信息的数据结构。 线段树可以在$O(logN)$的时间复杂度内实现单点修改、区间修改、区间查询(区间求和,求区间最大值,求区间最小值)等操作。 实现 以数组 arr{9,3,-1,8,4,-2} 为例 (下标从 1 开始) 存储 //区间[L,R], w表示维护的数据, 阅读全文
posted @ 2019-08-27 16:05 Vivid-BinGo 阅读(277) 评论(0) 推荐(0)
摘要:简介 Manachar 算法在 O(n) 时间处理出以字符串中每一个字符为中心的回文串半径。Manacher 算法通过将原字符串每个字符的左右两边都插入一个分隔符的方式,将长度为奇数的回文串和长度为偶数的回文串一起考虑。(分隔符不在原串中出现,一般情况下可以用 # 号代表) 预处理 实现 马拉车的主 阅读全文
posted @ 2019-08-27 11:13 Vivid-BinGo 阅读(448) 评论(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 阅读(220) 评论(0) 推荐(0)
摘要:折半枚举 折半枚举是一种很好用的枚举方法,比如有时集合过大无法全部搜索,但刚好只需要他们的和或其他可以处理出的东西,就可以一半一半搜。 练习 poj 2785 4 Values whose Sum is 0 2019牛客暑期多校训练营(第九场) Knapsack Cryptosystem 阅读全文
posted @ 2019-08-25 15:16 Vivid-BinGo 阅读(201) 评论(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 阅读(200) 评论(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 阅读(480) 评论(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 阅读(275) 评论(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 阅读(528) 评论(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 阅读(184) 评论(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 阅读(195) 评论(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 阅读(207) 评论(0) 推荐(0)
摘要:单调栈 定义: 单调栈是指一个栈内部的元素是具有严格单调性的一种数据结构,分为单调递增栈和单调递减栈。 性质: ① 满足从栈顶到栈底元素具有严格的单调性。 ② 满足栈的后进先出特性,越靠近栈底的元素越早进栈。 单调队列 定义: 单调队列是指一个队列内部的元素具有严格单调性的一种数据结构,分为单调递增 阅读全文
posted @ 2019-08-20 17:00 Vivid-BinGo 阅读(192) 评论(0) 推荐(0)
摘要:定义: 尺取法:尺取法是一种比较基础的算法,一般用来解决具有单调性的区间问题。尺取法通常是根据实际情况不断地推进区间左右端点以得出答案。尺取法比直接暴力枚举区间效率高很多,尤其是数据量大的时候,所以说尺取法是一种高效的枚举区间的方法,是一种技巧,一般用于求取有一定限制的区间个数或最短的区间等等。 使 阅读全文
posted @ 2019-08-17 20:40 Vivid-BinGo 阅读(367) 评论(0) 推荐(0)
摘要:Bound Found Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 7891 Accepted: 2572 Special Judge Description Signals of most probably extra-te 阅读全文
posted @ 2019-08-17 19:24 Vivid-BinGo 阅读(159) 评论(0) 推荐(0)
摘要:Charlie's Change Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 5731 Accepted: 1849 Description Charlie is a driver of Advanced Cargo Move 阅读全文
posted @ 2019-08-16 23:24 Vivid-BinGo 阅读(122) 评论(0) 推荐(0)
摘要:以 UVA 624 CD 为例,题为简单的01背包,重点看路径的记录部分。 代码1: 代码2: 阅读全文
posted @ 2019-08-16 22:29 Vivid-BinGo 阅读(187) 评论(0) 推荐(0)
摘要:01背包 定义: 有N件物品和一个容量为V的背包。每种物品只有一件,选或者不选,第i件物品的体积是w[i],价值是v[i]。求解将哪些物品装入背包可使这些物品的体积总和不超过背包容量,且价值总和最大。 实现: 令dp[i][j]表示选择前i件物品,背包体积为j时的最大价值。 因为01背包中每件物品只 阅读全文
posted @ 2019-08-16 13:27 Vivid-BinGo 阅读(205) 评论(0) 推荐(0)
摘要: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 阅读全文
posted @ 2019-08-15 19:37 Vivid-BinGo 阅读(196) 评论(0) 推荐(0)
摘要:Coins Time Limit: 3000MS Memory Limit: 30000KTotal Submissions: 48194 Accepted: 16209 Description People in Silverland use coins.They have coins of va 阅读全文
posted @ 2019-08-15 18:26 Vivid-BinGo 阅读(143) 评论(0) 推荐(0)
摘要:Cash Machine Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 45189 Accepted: 16490 Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 阅读全文
posted @ 2019-08-15 16:50 Vivid-BinGo 阅读(117) 评论(0) 推荐(0)
摘要: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 阅读全文
posted @ 2019-08-14 19:53 Vivid-BinGo 阅读(159) 评论(0) 推荐(0)
摘要:Duty Free Shop Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 1896 Accepted: 730 Special Judge Description Pedro travelled to Europe to ta 阅读全文
posted @ 2019-08-14 19:44 Vivid-BinGo 阅读(269) 评论(0) 推荐(0)
摘要: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 阅读全文
posted @ 2019-08-14 19:33 Vivid-BinGo 阅读(95) 评论(0) 推荐(0)
摘要:饭卡 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 52979 Accepted Submission(s): 17963 Problem De 阅读全文
posted @ 2019-08-14 19:28 Vivid-BinGo 阅读(138) 评论(0) 推荐(0)
摘要:定义 树的直径指树上距离最远的两点间的距离。 性质 ① 直径两端点一定是两个叶子节点。 ② 距离任意点最远的点一定是直径的一个端点,这个基于贪心求直径方法的正确性可以得出。 ③ 对于两棵树,如果第一棵树直径两端点为(u,v),第二棵树直径两端点为(x,y),用一条边将两棵树连接,那么新树的直径一定是 阅读全文
posted @ 2019-08-13 12:29 Vivid-BinGo 阅读(443) 评论(0) 推荐(0)
摘要: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 阅读全文
posted @ 2019-08-13 11:42 Vivid-BinGo 阅读(313) 评论(0) 推荐(0)
摘要:定义: 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]) 阅读全文
posted @ 2019-08-12 17:12 Vivid-BinGo 阅读(187) 评论(0) 推荐(0)
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 524288K,其他语言1048576K 64bit IO Format: %lld 空间限制:C/C++ 524288K,其他语言1048576K 64bit IO Format: %lld 题目描述 Gromah and LZR h 阅读全文
posted @ 2019-08-11 11:44 Vivid-BinGo 阅读(208) 评论(0) 推荐(0)
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 524288K,其他语言1048576K Special Judge, 64bit IO Format: %lld 空间限制:C/C++ 524288K,其他语言1048576K Special Judge, 64bit IO Form 阅读全文
posted @ 2019-08-10 20:00 Vivid-BinGo 阅读(188) 评论(0) 推荐(0)
摘要:时间限制: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 阅读全文
posted @ 2019-08-10 14:50 Vivid-BinGo 阅读(182) 评论(0) 推荐(0)
摘要:① 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]。 ④ 数列 阅读全文
posted @ 2019-08-08 20:48 Vivid-BinGo 阅读(524) 评论(0) 推荐(0)
摘要:Another kind of Fibonacci Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 3509 Accepted Submissio 阅读全文
posted @ 2019-08-08 19:33 Vivid-BinGo 阅读(184) 评论(0) 推荐(0)
摘要:Recursive sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 5120 Accepted Submission(s): 2 阅读全文
posted @ 2019-08-08 18:25 Vivid-BinGo 阅读(197) 评论(0) 推荐(0)
摘要:1878: [SDOI2009]HH的项链 Description HH有一串由各种漂亮的贝壳组成的项链。HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一 段贝壳,思考它们所表达的含义。HH不断地收集新的贝壳,因此他的项链变得越来越长。有一天,他突然提出了一 个问题:某一段贝壳中, 阅读全文
posted @ 2019-08-08 00:03 Vivid-BinGo 阅读(134) 评论(0) 推荐(0)
摘要:题目描述 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… 具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右, 阅读全文
posted @ 2019-08-07 19:15 Vivid-BinGo 阅读(184) 评论(0) 推荐(0)
摘要:时间限制: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 阅读全文
posted @ 2019-08-07 11:55 Vivid-BinGo 阅读(215) 评论(0) 推荐(0)
摘要:时间限制: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 阅读全文
posted @ 2019-08-07 00:13 Vivid-BinGo 阅读(184) 评论(0) 推荐(0)
摘要:定义: 离散化,把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。 理解: 简单粗暴的举个栗子。通过数轴比较1和100000000大小,那么想都不用想100000000肯定比1大。如果必须通过数轴比较呢?没有人会画一个长为大于100000000的数轴找到一个准确的点去比较。只会画出 阅读全文
posted @ 2019-08-06 13:03 Vivid-BinGo 阅读(186) 评论(0) 推荐(0)
摘要:分块即优美的暴力,通过将数组分成小块降低复杂度。分块可以维护线段树不好维护或根本维护不了的信息。线段树维护的信息必须具有可合并性,单调性等,而分块对信息性质的要求并没有那么苛刻。但在思想上,分块又与线段树十分类似,通过标记等操作来降低复杂度。 基本定义 一个长度为N的序列,块的大小为block,从序 阅读全文
posted @ 2019-08-06 11:43 Vivid-BinGo 阅读(266) 评论(0) 推荐(0)
摘要:题解:分块。哇,毒瘤题ORZ,提交了好几页TLE,不过是好题。先离散化再处理。区间的众数有三种情况:①L块中L及之后的部分 ②R块中R及之前的部分。 ③L,R之间若干个整块范围的众数。预处理每两个整块之间的众数,边块暴力,块的大小玄学开。 代码: 阅读全文
posted @ 2019-08-06 00:50 Vivid-BinGo 阅读(237) 评论(2) 推荐(0)
摘要:题解:分块。sum[i]维护 i 块增加的数,m[i]维护 i 块扩大的倍数。及时更新。=w[r] * m[r] + sum[r]。 代码: 阅读全文
posted @ 2019-08-06 00:28 Vivid-BinGo 阅读(161) 评论(0) 推荐(0)
摘要:题解:块状链表。最简陋的块状链表就能过。 代码: 阅读全文
posted @ 2019-08-06 00:15 Vivid-BinGo 阅读(175) 评论(0) 推荐(0)
摘要:题解:分块。操作只有开方,一个数经历几次开方后就会变成1。暴力开方,flag[ ] 标记此块是否全被开方为1。 代码: 题解:分块。与数列分块入门5类似。若某块全为同一个值,则用flag[ ]标记,直接计算,反之,暴力统计。 代码: 阅读全文
posted @ 2019-08-05 23:45 Vivid-BinGo 阅读(146) 评论(0) 推荐(0)
摘要:题解:分块。用vector维护每个块,二分查找。及时更新边块即可。当前值+此块增加的值<c*c,即当前值<c*c-块同时增加的值。 代码: 题解:分块。与数列分块入门 2类似,稍微修改即可。 代码: 阅读全文
posted @ 2019-08-05 21:22 Vivid-BinGo 阅读(224) 评论(0) 推荐(0)
摘要:题解:分块。 代码: 题解:分块。 代码: 阅读全文
posted @ 2019-08-05 18:45 Vivid-BinGo 阅读(160) 评论(0) 推荐(0)
摘要:2002: [Hnoi2010]Bounce 弹飞绵羊 时间限制: 10 Sec 内存限制: 259 MB提交: 16133 解决: 8253 题目描述 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着 阅读全文
posted @ 2019-08-03 15:08 Vivid-BinGo 阅读(138) 评论(0) 推荐(0)
摘要:快速乘: 快速幂: 矩阵快速幂: 矩阵快速幂和快速幂相同,只不过把数字换成了矩阵。 十进制快速幂: 利用二进制的性质有快速幂,当然也可以利用十进制进行快速幂。当指数非常大时,需要通过十进制快速幂对数据进行过渡处理,再利用二进制快速幂求解。 阅读全文
posted @ 2019-08-03 00:33 Vivid-BinGo 阅读(185) 评论(0) 推荐(0)
摘要:时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目 阅读全文
posted @ 2019-08-02 23:04 Vivid-BinGo 阅读(255) 评论(0) 推荐(0)
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K Special Judge, 64bit IO Format: %lld 空间限制:C/C++ 262144K,其他语言524288K Special Judge, 64bit IO Format 阅读全文
posted @ 2019-08-02 22:34 Vivid-BinGo 阅读(263) 评论(0) 推荐(0)
摘要:Tree2cycle Time Limit: 15000/8000 MS (Java/Others) Memory Limit: 102400/102400 K (Java/Others) Total Submission(s): 4405 Accepted Submission(s): 1055 阅读全文
posted @ 2019-08-02 17:11 Vivid-BinGo 阅读(150) 评论(0) 推荐(0)
摘要:Computer Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 37614 Accepted Submission(s): 6579 Prob 阅读全文
posted @ 2019-08-02 13:48 Vivid-BinGo 阅读(114) 评论(0) 推荐(0)