07 2019 档案
摘要:"LeetCode 560. 和为K的子数组" 给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。 示例 1 : 输入:nums = [1,1,1], k = 2 输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。 说明 :
阅读全文
摘要:"洛谷P1440 求m区间内的最小值" 运用递增单调递增队列,原理同单调栈,只不过他可以更改区间的left和取到[left,right]的最值
阅读全文
摘要:单调栈是什么? 分为单调递增和单调递减栈。(栈内元素成递增或者递减性) 例如: 当前单调递增栈内元素[1,2,4],之后入栈的元素为(3), 为了维护单调性,元素(4)出栈 $$ [1,2,4] 入栈(3) 出栈(4) [1,2,3] 入栈(0) 出栈(1)(2)(3) [0] $$ 单调 递增栈
阅读全文
摘要:"牛客 20806 Bad Hair Day" 题目意思 牛1向右看,看得见 牛2,3,4, 看不见 牛5 以及 牛5之后的牛。 求每个牛能看见牛的个数。 1 2 3 4 5 6 O O OO O OOO O OOOOOO 题解:维护一个单调递减栈,只要求每个最大值的右区间即可)。 include
阅读全文
摘要:"教程地址" C++ int lowbit(int i) { return i & ( i); } int sum(int i) {//区间[1,i]的和 int ans = 0; while (i 0) { ans += c[i]; i = lowbit(i); } return ans; } v
阅读全文
摘要:"POJ 2796 Feel Good" 题目意思: $\displaystyle \sum^j_{y=i}X_y, (1 \leq i\leq j \leq N) min(X_{i}|1 \leq i \leq N)$ PS:这题要多组读入,C++ cout cin记得优化 include inc
阅读全文
摘要:"LeetCode 84. 柱状图中最大的矩形" 运用递增单调栈,求取最小值的右区间
阅读全文
摘要:已经知道三角形三点A(X1,Y1) B(X2,Y2) C(X3,Y3) $$ \vec{AB} = (X2 X1,Y2 Y1) $$ $$ \vec{AC} = (X3 X1,Y3 Y1) $$ $$ ||n|| = \vec{AB} \times \vec{AC} = |\vec{AB}|\cdo
阅读全文
摘要:Language:DefaultSequence Time Limit: 5000MSMemory Limit: 65536KTotal Submissions: 9000Accepted: 2036Case Time Limit: 2000MSDescriptionGiven a sequence
阅读全文
摘要:后缀数组的定义: 后缀数组 (Suffix Array) 指某个字符串的所有后缀按字典排序后得到的数组。数组中只保存后缀开始的位置。简称SA。 后缀:从某个字符串的某个开始位置到其末尾的字符串子串,包括原串和空字符串。 例子:{ABC}的后缀{ABC},{BC},{C},{} 字典排序: 默认从小到
阅读全文
摘要:DJB Hash 俗称 Times33 算法。 作用:将字符串映射成一个整数 用法:顾名思义,每次用HASH 值乘 33,加上字符ASCII值 hash(i) = hash(i-1) * 33 + str[i] 下面是优化的代码: 1. odd number 2. prime number 3. d
阅读全文

浙公网安备 33010602011771号