首页 > 其他分享 >2024暑假集训总结

2024暑假集训总结

时间:2024-07-24 11:51:02浏览次数:11  
标签:二分 Hash 重心 线段 短路 2024 算法 暑假 集训

2024暑假集训总结

知识点清单:

树状数组拓展:

(1)k维前缀和
(2)树状数组+倍增 没码过,小慌

线段树:

(1)线段树不仅仅是一个维护区间和、区间最值或者类似于方差那道题,维护区间的平方等等信息,它的深层是将区间拆分为 \(O(logn)\) 个子区间从而将修改与查询降为 \(O(log n)\) 级别,因此对于线段树的使用不能死板,它还可以维护很多区间信息,例如一个矩阵,lmax,rmax,等等等等。
(2)线段树优化dp,这个目前感觉很少遇到过很难的,基本暴力dp一列,用线段树优化就很显然?
(3)线段树上二分
(4)动态开点线段树,是在数据规模很大的情况下使用的,用于减少不必要的空间消耗
(5)线段树合并,目前做题太少对其应用的了解不大深刻,只知道能够以 \(O(log n)\) 的时间复杂度合并两棵线段树
(6)可持久化线段树,用于维护历史信息的线段树,核心思想还是线段树,实现方式跟动态开点的版本大同小异
(7)扫描线,解决矩形面积并之类的问题

离线分治算法:

(1)线段树分治
(2)cdq分治:降低维度的分治
(3)整体二分 :基于值域的分治,避免多次二分,仅二分一次,但每次二分会把所有原会被访问到的情况都访问,这样虽然情况看似增多,但复杂度还是一个\(O(log n )\)级别的

Dp:

感觉还行?具体的一些地方,先把题码个差不多再总结吧。

图论:

(1)最短路:典型应用的话感觉大多偏分析结论然后套板子,其中的分层图最短路需要仔细斟酌一下建边,后面两个部分,差分约束和同余最短路是讨论的重点。
1)差分约束:差分约束解决的问题是,有n个变量 \(x1,x2,...,xn\),以及若干个差分方程 \(xi −xj ≤ c(1 ≤ i,j ≤ n,i= j)\),求出一组合法解。通过一些建边加上最短路就可以解决。
2)同余最短路:只会基础,理解不够深刻
(2)最小生成树
1)Kruscal算法:贪心的按照边权从小到大遍历,如果当前边的两点已联通就不加反之,加
2)Prim算法:类似于Dij
3)Brovka算法:思想非常简单。初始时每个点都是一颗不同的树,每次遍历边表,找距离每棵树最近的另一棵树,并把它们连起来。可以发现,每一次一棵树都与另一棵树连接起来,所以每次树的数量都至少减少到一半,所以这样操作的次数为\(O(logV)\)次。每次我们遍历边表,连接所用的时间为\(O(E+V∗α(V))\),所以总复杂度为\(O(ElogV)\)。

对于这三种算法的使用具体还得看题目了,目前对于这三种算法的具体使用做题还是少了。

(3)有向图连通性:强联通分量这里懂了,2-SAT 就是解决一类给定多个限制条件,条件形式类似于 a,b至少成立一个,判断有无解,求解,此时的建边给我的感觉很像扩展域并查集,跑一个 Tarjan 就差不多了。
(4)无向图连通性:
1)点双,边双,缩点,割点,割边
2)圆方树
3)欧拉回路

额……以及期间遇见的很多神奇的建图技巧,例如线段树优化建图,前缀和优化建图,倍增优化建图?

(5)网络流:只会基础

字符串

Hash:用于判断两个东西是否相同,所以实际的应用不仅仅是字符串Hash,还有树Hash或者一些别的?Hash 的写法一定一定要注意注意,之前因为Hash冲突有一道题调了一晚上,但是很奇异的是双Hash不是很难被卡吗,那天双 Hash 竟然能被 洛谷卡掉,应该是Hash 模数的问题,背后的原理,我回头再找一下。
Kmp:Kmp里面的那个f[]太有用了很多题都是基于f[]搞的
AC自动机 :Kmp上树?
Manacher:……感觉这几个字符串算法都不算很难()

树上问题

(1)LCA的另一种求法:

​ 考虑一棵树的欧拉序(不妨记为seq),即任何时候进入节点(包括 第一次和回溯的时候)时都要记录一下编号。 如果记pu表示u第一次出现所在位置,则从pu到pv上的点一定 包含\(lca(u,v)\)且不包含比它更浅的点。 所以只需要求出\(argminpv i=pu depseqi\) 即可。 这里用经典的倍增求RMQ做法即可做到\(O(1)\)查询。

(2)树的直径:两次dfs
(3)树的重心:
1)使得删去这个点后,剩余子树大小最大值最小的点被称为树的重心。
2)重心的数量最多有两个,如果有两个,则它们相邻。
3)删掉重心后,所有子树大小不超过整棵树的一半。
4)所有点到某个点的距离和中,到重心的距离之和最小,如果有两个重心那么和相同。
5)在删除或加入一个叶子,最多只会引起重心移动一条边。
6)求法也很简单,对于每个点求出所有子树大小(别忘了上面那个子树)后按照定义求解即可
(4)重剖 这个东西也没啥好说的,之前已经学过了
(5)dsu on Tree :对于这个东西感觉说不上来……额……不会
(6)虚树,虚树就是注意到了原树有很多地方对答案是无贡献的于是只保留有贡献的点,建立起一棵虚树,用来降低规模。好像没写过相关的题,有点慌……

数论

对于这部分,我就偷个小懒?主要的问题是莫反推式子,那些题吧,老师推的时候感觉也很对,自己一推就蒙了,技巧还是不熟呗,然后其它的部分,没有什么太大的问题。

标签:二分,Hash,重心,线段,短路,2024,算法,暑假,集训
From: https://www.cnblogs.com/yxans/p/18320561/2024HASC

相关文章

  • 2024牛客多校第三场
    磨合上升期,爽!B队友做的#include<bits/stdc++.h>usingnamespacestd;#defineintlonglonginlineintread(){intx=0;boolf=1;charch=getchar();for(;ch<'0'||ch>'9';ch=getchar())f^=(ch=='-');for(;ch>=&#......
  • 2024-07-24 想法记录,关于 可以准点睡觉 和 拖延寄快递
    2024-07-24     昨天晚上可以及时睡觉,比原来早,12点以前睡下来,11点半闭上的眼。之前的晚睡,怎么突然在这一会就可以变回来了呢? 我思考了一下,最重要的原因,我看见自己下巴和两鬓的白胡子,白发了。我才人到中年而已,年纪不大就已经头发胡子都变白了,不敢再熬夜了。再仔细感受......
  • 源代码加密软件,2024年企业常用的五款源代码加密软件推荐
    在当今高度数字化和竞争激烈的商业环境中,保护源代码的安全性对于企业来说至关重要。源代码不仅是企业的核心资产,也是创新和竞争优势的关键所在。一旦源代码泄露,可能导致知识产权的丧失、商业机密的暴露,甚至对企业的声誉造成不可挽回的损害。因此,选择一款可靠的源代码加密软件......
  • 2024 暑假集训
    树状数组&线段树线段树合并,主席树等知识点是第一次接触。同时对扫描线能解决的问题有了些更好的认知。毕竟是之前学过的东西,还是比较好的。掌握程度:\(85\%^+\)离线分治算法具体是:线段树分治\(80\%^+\)就是个线段树上二分。CDQ分治基于时间的分治\(75\%^+\)基本......
  • 【稳定检索|投稿优惠】2024年金融创新与当代贸易国际会议(ICFICT 2024)
    2024年金融创新与当代贸易国际会议2024InternationalConferenceonFinancialInnovationandContemporaryTrade【1】大会信息会议名称:2024年金融创新与当代贸易国际会议会议简称:ICFICT2024大会时间:请查看官网大会地点:中国·南京截稿时间:请查看官网审稿通知:投稿......
  • [2024JZYZ暑期集训]知识点总结
    前言第三次暑期集训了,与前两次不同,这次没有前两次的激动了,所以也能够更深入地学习算法。闲话宿舍挺好,有空床能住。捡了三块钱,史上最灵异事件。R班好热闹。认识了几个郑州那边的大佬知识点Day1讲了几个基础数据结构(树状数,线段树),作业里面的题目很多之前都做过,就当复习了。......
  • 2024/7/23 测试小结
    突然听说要考试捏(没有复习(T1是P1434[SHOI2002]滑雪。草这不一眼......等下好像不太会写。一开始脑抽了。暴力建图给每个点跑spfa最长路。明显地,不是正解。直接跳掉了。T2是P4170[CQOI2007]涂色。草这真的是一眼题。10min秒掉。T3是CF161DDistanceinTree。一眼淀......
  • 【保奖思路】2024年华为杯研究生数学建模D题解题思路分享(点个关注,后续会更新
    您的点赞收藏是我继续更新的最大动力!一定要点击如下的卡片链接,那是获取资料的入口!点击链接加入群聊【2024华为杯研赛资料汇】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=MwNruKbEvR9aZns1l7xXBWmQQKYAEh-F&authKey=igaBN79pz6BhNlDQ6TIZ5YFAbn71aDcYL77uANPquLF%2FTVgeSAhEZ......
  • 2024.7.23 c语言学习笔记
    复习:什么是指针?   也叫地址address,就是内存块的首位置,英文名叫painter。他是一个常量,指针不能被赋值,不能自增自减,例如:数组名就是内存块首地址,他就是一个指针常量。Inta=10,&a就是首地址,是指针常量;什么是指针变量?顾名思义,存放指针(地址)数据的变量,也叫地址变量。就......
  • 2024.7.22每日笔记,有错望指出
    //5、求125之内自然数中偶数之和。#include<stdio.h>intmain(){inti=0;intsum=0;for(i=0;i<=125;i++){if(i%2==0){sum=sum+i;printf("%d\n",sum);}}return0;}//7、编程计算1......