ACM-知识总结
文章平均质量分 86
知识总结
豆沙睡不醒
永远不要停下脚步
展开
-
【知识总结】dfs序 树链剖分
【牛客】2020牛客暑期多校训练营(第七场)C- A National Pandemic又是死磕一个算法的过程(雾)一、前置知识视频:传送门1 传送门2dfs序和树链剖分两者都借助hash的思想是将树形转化成线性的算法,前者主要处理子树问题,后者主要处理链的问题。1.dfs序**定义:**顾名思义是按照dfs的顺序标号。**重要性质:**每棵子树内的标号都是连续的,某些链的标号也是连续的。代码:int timetmp;///时间戳,计数器int in[maxn];///表示dfs进某节点原创 2021-08-30 17:27:01 · 176 阅读 · 0 评论 -
【知识总结】分块和值域分块
分块思想分块思想是对原数据适当的划分,并且在划分后的每一个块上预处理部分信息,从而优化算法。大体思路就是:对于给出的序列按照固定的块长(一般为n)(一般为\sqrt n)(一般为n)进行分块,预处理出每个块中询问的信息在询问时,答案可以分为三部分:中间完整的块,左端点所在不完整的块,右端点所在不完整的块。对于第一种,通过上一步预处理的信息直接获得答案。对于第二种和第三种,暴力遍历一遍区间求得答案。假设块长为n\sqrt nn,那么询问时,第一种的时间复杂度为O(1)O(1)O(1)或O(n)原创 2021-08-15 09:03:08 · 1216 阅读 · 0 评论 -
【题型总结】等差数列覆盖区间问题
【题型总结】给区间加等差数列求值问题一、前言:上一篇题型总结不知道扔哪去了,下午训练看到个很眼熟的题,感觉见过很多次了,就顺手总结下。需要会的前置知识有:差分与前缀和,树状数组基础,线段树基础二、UPC 2020年夏混合个人训练第八十场 问题 B: 序列 (二阶差分)题意:给定长度为n的数组和m次操作,每次操作都表示将区间[l,r]加上一个首项为s,末项为e的等差数列,求操作后序列每一项的异或和。思路:序列[l]+=首项;序列[l+1]+=公差-首项;序列[r+1]-=首项+(r-l原创 2020-08-16 20:43:55 · 600 阅读 · 0 评论 -
【知识总结】扫描线+树状数组
问题引入:给出nnn个区间[li,ri][l_i,r_i][li,ri],问有多少对区间相交。基本思路:大概用于:可以离线的区间查询问题枚举右端点,看符合条件的对应点的个数,同时要保证对于每一个右端点来说,合法的对应点的数量不宜超过n\sqrt nn...原创 2021-08-09 22:27:05 · 451 阅读 · 0 评论