首页 > 其他分享 >2024.8.25总结

2024.8.25总结

时间:2024-08-25 20:25:40浏览次数:12  
标签:总结 25 log 树套 2024.8 复杂度 分治 线段 DP

这周打了一场模拟赛,学了dsu on tree,线段树合并,点分治边分治&点分树,树套树,K-D Tree,STL中的bitset,分块&莫队学了好多东西

模拟赛中犯了低级错误文件怎么能写错啊啊啊啊,于是唱歌自省。在模拟赛中也学到了东西:线段树可以维护最短路,折半搜索签到题没签出来,看起来数组开不下但实际要用的状态数很少的DP可以用map维护一下,巩固了一下xor hashing的trick。

这周对于树上问题处理的手段增加了很多。dsu on tree通过类似树剖的方式保证了\(O(n\log n)\)的时间复杂度,而又只保存重儿子的信息保证了\(O(n)\)的空间复杂度,很优秀而且好写。但是要注意在维护信息时也可以用set/map之类的容器辅助,不要太死扣\(O(n\log n)\)的时间复杂度,有时多只\(\log\)也可以。

淀粉质点分治边分治也是处理树上问题的利器,通过每次以当前树的重心作为分治中心来保证子树大小每次分治至少减半,于是时间复杂度\(O(n\log n)\)。点分树将点分治每次的分治中心保存下来构成树形结构,相当于将点分治离线下来,并且由于点分治的性质,树高是严格的\(\log n\)。点分树可以在线地回答询问,并且由于树高的性质,一些看上去复杂度不对的暴力在它上面就对了但暂时还没学懂

对于线段树合并,感觉合并就像是相加,类似树上前缀和,可以在\(O(n\log n)\)的时间内合并信息。根据老师的例题,这个东西可以维护DP,但暂时还不会,据说这个东西叫整体DP。

树套树与K-D Tree是高级的数据结构,码量有些大并且暂时考不到,更加高深的部分暂时咕咕咕了K-D Tree可能暂时完全咕咕咕了。树套树目前大概会BIT套线段树,线段树套线段树但是后者还没正式写过,只是感觉与前者同理即可。具体做题时就要考虑好外层要维护什么,内层要维护什么,然后分别选择合适的数据结构,再套在一起。

bitset属于STL,做位运算的时间复杂度为\(O(\frac{n}{w})\),\(w\)根据环境不同分别有\(w=32\)和\(w=64\),总之是\(n\)带一个小于\(\frac{1}{10}\)的常数。一些关于bool的DP可以考虑用bitset优化,使时间复杂度正确。

分块&莫队时间复杂度都带根号,比较暴力,但可以解决很多很多问题只是可能时间不是特别优秀,而且有些特殊神秘的东西只能用这二者维护。最重要的是平衡思想,体现在可以用均值不等式求块长,以及可以根据不同的情况选择不同的暴力(很类似于根号分治),保证根号级别的复杂度。分块是一种优雅的暴力,好写好用。

标签:总结,25,log,树套,2024.8,复杂度,分治,线段,DP
From: https://www.cnblogs.com/EmilyDavid/p/18379488

相关文章

  • Java笔试面试题之多线程常见考点总结
    Java多线程面试题涵盖了Java多线程编程的多个重要方面,主要考察面试者对Java并发编程的理解和应用能力。以下是常见的考点总结:基本概念与区别:进程与线程的区别:进程是资源分配的基本单位,线程是CPU调度的基本单位,线程共享进程资源。Java堆与栈的区别:堆用于存储对象实例,栈用......
  • 2.MapReduce论文总结
    一.介绍很多业务逻辑很简单,主要难点是数据量太大,可使用分布式处理提高速度。传统分布式程序,计算逻辑和分布式任务分发、故障恢复混在一起,原本简单的计算逻辑变得模糊不清,难以处理。MapReduce将两者分离,任务分发,容错,恢复等逻辑由模型完成,程序员只需要专注计算逻辑。大大了简化......
  • 亲测好用,吐血整理 ChatGPT 3.5/4.0 新手使用手册~ 【2024.08.25 更新】
    废话不多说,直接分享正文~以下是小编为大家搜集到的最新的ChatGPT国内站,各有优缺点。1、AIPlus(稳定使用)推荐指数:⭐⭐⭐⭐⭐     yixiaai.com该网站已经稳定运营了1年多了。2023年3月份第一批上线的网站。网站支持GPT-3.5、4.0及4o、4omini模型,手机和电脑都能用......
  • 202408 总结
    NOIP20240801NOIP20240802NOIP20240803NOIP20240804NOIP20240805NOIP20240806NOIP20240807NOIP20240808NOIP20240809ICPC20240814ICPC20240815NOIP20240816NOIP20240818NOIP20240819NOIP20240820NOIP20240821......
  • Graphics2D绘图方法总结
    一、简介在开发中可能会遇到这样一类场景,业务复杂度不算太高,技术难度不算太深,但是做起来就很容易把人整破防,伤害很高侮辱性很强的:绘图。绘图最怕有人挑刺:这里变形,那里不对,全图失真。最近在处理这样一个场景,使用Java的Graphics2D类,绘制业务需要的图形模板,然后在具体流程中填充数......
  • 代码随想录DAY25 - 回溯算法 - 08/24
    目录非递减子序列题干思路和代码递归法递归优化全排列题干思路和代码递归法全排列Ⅱ题干思路和代码方法一:用集合set去重方法二:先排序,再用数组去重非递减子序列题干题目:给你一个整数数组nums,找出并返回所有该数组中不同的递增子序列,递增子序列中至少有......
  • JS中数组去重方法总结
    在JavaScript中,数组去重是一个常见的操作,目的是移除数组中的重复元素,确保数组中每个元素都是唯一的。以下是几种常用的数组去重方法,分别适用于不同的情况:1.使用Set对象Set是ES6引入的新数据结构,它类似于数组,但其中的每个值都是唯一的。利用这一特性,可以很容易地去重......
  • 2024暑假总结4(暑假结束总结)
    前言暑假匆匆结束了,现在距军训还有3天时间。回望整个假期,我经历了许多,成长了许多,结识了一些朋友,度过了一个充实、拼搏的集训。现在坐于电脑桌前,感慨万千,我从未想过一个暑假会经历这么多事情。在此感谢成都七中,感谢学校给了我这样一个机会;感谢我的教练hfu,他一直在对我们进行方向......
  • 2024.8.25 鲜花
    NTERNETOVERDOSEこの混沌とした令和のインターネットを照らす一筋の光電子の海を漂うオタクに笑顔を未来の平和をお約束躁鬱だけどまかせとけインターネット・エンジェルただいま降臨社会をやめろ家族をやめろ人間関係をやめろ今すぐ薄暗い部屋で青白いライトを浴......
  • 最全!万字长文总结opencv-python常用函数(一)
    文章目录一,简介:二,图像的基础操作:2.1,图像的读取显示与保存2.1.1图像的读取cv2.imread:2.1.2图像的显示cv2.imshow与等待cv2.waitKey:2.1.3图像保存cv2.imwrite:2.2,图像属性获取:2.3,图像裁剪cv2.selectROI:2.4,图像通道的拆分cv2.split:2.5,图像通道的合并cv2.merge:三,图像的数值......