摘要: 阅读全文
posted @ 2019-12-29 05:37 Aamir_Dan 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 二次剩余定义: 在维基百科中,是这样说的:如果q等于一个数的平方模 n,则q为模 n 意义下的二次剩余。例如:x2≡n(mod p)。否则,则q为模n意义下的二次非剩余。 Cipolla算法:一个解决二次剩余强有力的工具,用来求得上式的x的一个算法。 需要学习的数论及数学基础:勒让德符号、欧拉判别准 阅读全文
posted @ 2019-08-22 01:19 Aamir_Dan 阅读(895) 评论(1) 推荐(1) 编辑
摘要: 示例: 输入: 4000010010111011110 输出: 00001001 0111 01111 0 题意:给出一个只含有0和1的字符串,找出一种分割方法,使得每个分割出的字符串都是在该字符串自循环节中最小。 题解:先把每段按1结尾分开,然后暴力合并,合并的条件是每段字符串的字典序都不下降,这 阅读全文
posted @ 2019-08-16 16:04 Aamir_Dan 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 示例: 输入: 33 4 24 5 27 8 5 输出:5 7 31 题意:存在多少对<x,y>满足x&y>C或x^y<C的条件。(0<x<=A,0<y<=B) 题解:首先逆向考虑,求有多少对(x,y)满足x&y<=C且x^y>=C,然后用A*B去减它即可。然后就是数位dp模板题(数位dp不懂可先补 阅读全文
posted @ 2019-08-16 15:11 Aamir_Dan 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 题目出处:Find the median 示例: 输入: 53 1 4 1 5 92 7 1 8 2 9 输出:3 4 5 4 5 说明:L = [3, 2 ,4, 1, 7],R = [4, 8, 8, 3, 9] 题意:每次插入[l[i],r[i]][l[i],r[i]],询问中位数 题解:线段 阅读全文
posted @ 2019-08-16 14:34 Aamir_Dan 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 百度百科(离散化): 离散化,把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。 通俗的说,离散化是在不改变数据相对大小的条件下,对数据进行相应的缩小。例如: 原数据:1,999,100000,15;处理后:1,3,4,2; 原数据:{100,200},{20,50000},{1, 阅读全文
posted @ 2019-08-16 13:50 Aamir_Dan 阅读(1205) 评论(0) 推荐(0) 编辑
摘要: 示例:输入:25 1 11 10 125 1 23 2 3输出:12 题意:n种树,第i种树有P[i]颗,砍掉每颗树的代价是C[i], 高度是H[i]。需要用最小的花费砍掉一些树,让最高的树超过一半。 题解:按高度分类,从小到大枚举最大高度,比当前枚举的高度 h 要高的,一定删,比它小的,如果删前 阅读全文
posted @ 2019-08-13 15:44 Aamir_Dan 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logN)。而未优化的空间复杂度为2N,实际应用时一般还要开4N的数组以免越界,因此有时需要离散化让空间压缩。一.建 阅读全文
posted @ 2019-08-13 14:50 Aamir_Dan 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 示例: 输入: 140 1-1 01 00 -1 输出:-1 999000000 1 -999000001 题意:给定平面上一系列的点,求一条以(x1,y1),(x2,y2)两点表示的直线将平面分为包含点数量相等的两部分,其中直线不能穿过任何一点。 思路: 阅读全文
posted @ 2019-07-29 17:28 Aamir_Dan 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 示例: 输入: 801001001 输出:4 6 题意:一段长度为n且只有 ‘0’ 和 ‘1’ 的字符串,求子串中 ‘0’ 和 ‘1’ 数目相等和子序列中 ‘0’ 和 ‘1’ 数目相等的最大长度。 思路:子序列的最大长度为 ‘0’ 和 ‘1’ 的个数中最小的两倍; 求字串的最大长度就用前缀和,将 ‘ 阅读全文
posted @ 2019-07-29 17:23 Aamir_Dan 阅读(116) 评论(0) 推荐(0) 编辑