T1: 每个数至多有$2 \sqrt{m}$个约数,也就是说即使$n$很大,在数集中有倍数的数在$m \sqrt{a}$级别。 可以暴力筛出数集中每个数得约数,用hash表维护一下,可实现$O(1)$查询。 用$n$减去筛出的数个数即为答案中0的个数,但是注意超过$n$的数要删掉。 时间复杂度$O( ...
分类:
其他好文 时间:
2019-10-05 16:45:49
阅读次数:
99
https://loj.ac/problem/10042 题目描述 给出一段数字序列,求一段最长的连续的序列使其中的元素不重复。 思路 这道题显然想要我们给出O(n)的算法,所以我们考虑用双指针,每当有指针右移时,判断加入的数是否出现过,出现过就接改变左指针。二是否出现过我们可以用Hash表维护,不 ...
分类:
其他好文 时间:
2019-10-04 15:11:34
阅读次数:
77
方法一:双指针法,先要对数组进行排序 输出:[[1, 8], [3, 6]] 方法二:对于第一种方法,主要时间都用在进行排序上,我们可以利用hash来避免进行排序。 输出:[[1, 8], [3, 6]] 方法三:免去建立hash表 输出:[[6, 3], [8, 1]] 扩展:方法三可以扩展到三个 ...
分类:
编程语言 时间:
2019-10-04 14:51:20
阅读次数:
95
给出n m个字符串,进行n m次连接,输出连接后的字符串有几种 "传送门" 对于插入,查询字符串的种类有几个操作 由于hash的数目很大 同时,对于set也可以实现该操作 ...
分类:
其他好文 时间:
2019-10-04 11:49:29
阅读次数:
95
https://loj.ac/problem/10034 题目描述 设计一个系统支持两个操作: ①加入一个字符串s; ②查找是否存在一个字符串。 思路 我们这里的要求是维护一个可快速查找、插入字符串的数据结构。我们这里可以用Hash表,也就是散列表来储存。我们用使用双Hash,生成两个值,其中一个作 ...
分类:
其他好文 时间:
2019-10-02 22:52:33
阅读次数:
123
概念:Hash表(HashTable)又称散列表,通过关键字Key映射到数组的一个位置来访问记录,以加快查找的速度。这个映射函数称为Hash函数,存放记录的数组称为Hash表直接取余法用关键字k除以Hash表的大小m取余数:h(k) = k mod h乘积取整法用关键字k乘以一个常数A(0<A<1)... ...
分类:
编程语言 时间:
2019-10-02 20:40:24
阅读次数:
117
A.u 只涉及到区间修改可以考虑差分,然而如果每一行都差分复杂度还是过高。我们发现差分标记也是连续的(一行横着的一行斜着的),所以可以维护两个 差分的差分,扫两遍统计即可。 B.v 二进制状压一下当前场上剩余球的状态,记搜即可。记忆化状态需要手写Hash表,直接map会T飞。 另外,在本题中形如00 ...
分类:
其他好文 时间:
2019-09-30 09:36:02
阅读次数:
84
1.hash表:太慢了,内存消耗太多了。。当做思路看看得了。。 2.快慢指针 ...
分类:
其他好文 时间:
2019-09-14 14:19:46
阅读次数:
113
题目链接 "题目链接 http://poj.org/problem?id=3274" 题意 输入每头牛的特征的10进制,若i~j头牛中每个数位的特征相等则满足要求,求所有满足要求的j i的最大值。 解题思路 1. 抽屉原理,用前缀和处理每个数位即可。 2. 直接暴力的话复杂度太大了,所以需要取巧的办 ...
分类:
其他好文 时间:
2019-09-07 13:08:41
阅读次数:
99
hash_map 底层是hash表,查询时间复杂度是O(1) map 底层是红黑树,查询时间复杂度是O(logn) 字符hash模板 进制哈希 首先设一个进制数base,并设一个模数mod 而哈希其实就是把一个数转化为一个值,这个值是base进制的,储存在哈希表中,注意一下在存入的时候取模一下即可 ...
分类:
其他好文 时间:
2019-09-01 11:08:48
阅读次数:
101