数据结构
皓洲
这个作者很懒,什么都没留下…
展开
-
concurrentHashMap源码解析
concurrentHashMap源码解析put解析public V put(K key, V value) { return putVal(key, value, false);}/** Implementation for put and putIfAbsent */final V putVal(K key, V value, boolean onlyIfAbsent) { //判断key和value 不能为null if (key == null || value原创 2021-09-30 18:49:28 · 87 阅读 · 0 评论 -
浅读HashMap源码(java 1.8)
HashMap 学习笔记存储结构(数据结构)从结构实现来讲,HashMap是数组+链表+红黑树(JDK1.8增加了红黑树部分)实现的,如下如所示。看下源码: /** * Basic hash bin node, used for most entries. (See below for * TreeNode subclass, and in LinkedHashMap for its Entry subclass.) */ static class N原创 2021-05-29 14:33:00 · 69 阅读 · 1 评论 -
2020 ccpc长春 F Strange Memory (树上启发式合并+位运算)
2020 ccpc长春 F Strange Memory (树上启发式合并+位运算)题目https://codeforces.com/gym/102832/problem/F题意给定一个含有n个节点的数,求下式的值。∑i=1n∑j=i+1n[ai⊕aj=alca(i,j)](i⊕j)\sum_{i=1}^n\sum_{j=i+1}^n[a_i⊕a_j=a_{lca(i,j)}](i⊕j)∑i=1n∑j=i+1n[ai⊕aj=alca(i,j)](i⊕j)意思大概就是给你两个结点,如果这原创 2020-11-24 12:49:09 · 963 阅读 · 0 评论 -
Educational Codeforces Round 2 E. Lomsat gelral (权值线段树,动态开点+线段树启发式合并)
Educational Codeforces Round 2 E. Lomsat gelral (权值线段树,动态开点+线段树启发式合并)题目600 E. Lomsat gelral题意给你一个树(根节点为1),有n个节点,每个节点都有一种颜色,问你每个节点和其子节点一共有多少种颜色。(n<=1e5)题解最朴素的想法肯定是疯狂dfs,显然这是O(n2)的做法,不可取。那么我们就要考虑到用树上启发式合并,这里我用的是权值线段树启发式合并。思路是这样的:从根节点开始dfs,为每一个叶子节原创 2020-11-14 20:51:23 · 124 阅读 · 0 评论 -
2020 CCPC 绵阳站 J-Joy of Handcraft (调和级数 线段树)
2020 CCPC 绵阳站 J-Joy of Handcraft (调和级数 线段树)之前一直对线段树有种恐惧感,感觉十分晦涩难懂,但是我还是得迎男而上!这题必须补!我说的!耶稣都留不住!题目https://pintia.cn/problem-sets/1322796904464203776/problems/1322798545527595017题意有n个灯泡,每个灯泡有两种属性分别为t,x。t表示的是开关周期,一个灯泡打开的时间为 (2kt+1)- (2kt+t),关闭时间为(2kt+t原创 2020-11-13 10:51:42 · 231 阅读 · 0 评论 -
2019CCPC湘潭全国邀请赛 C.Chika and Friendly Pairs(莫队+树状数组+数据离散化)
Chika and Friendly Pairs(莫队+树状数组+数据离散化)题目http://acm.hdu.edu.cn/showproblem.php?pid=6534题意给你n(1≤n≤27000),m(1≤m≤27000),k (1≤k≤109)三个数。n代表有n个小于109的数,m代表m次询问,每次询问要求查询区间[L,R]的中两个数绝对值差小于等于k的对数一共有多少个。题解这个明显是区间查询的题目,很自然的想到莫队算法。可是莫队算法要怎么用呢?莫队算法关键的点就是add操作和de原创 2020-11-09 14:07:39 · 213 阅读 · 2 评论