随笔分类 -  信息学竞赛 / 算法

各种OI方面算法
摘要:今天在看题解的时候,发现了一个有意思的写法,就是在函数内直接定义一个类似函数的东西,了解了一下其实是 c++ 11 引入的 Lambda 表达式。 Lambda 表达式 ISO C++ 11 标准的一大亮点是引入 Lambda 表达式。基本语法如下: [capture list] (paramete 阅读全文
posted @ 2024-03-02 16:21 alloverzyt 阅读(5) 评论(0) 推荐(0) 编辑
摘要:专题:分层图 拖了整整一个月,我终于来学习分层图了,原因是考一道 USACO 的题正解死分层图, 秉持着竟然有用,那我就来学学的原则,学习了分层图。 纵然,这确实是个好东西,但是局限性也比较明显 ,分层图的分层的意思是把图整体复制几遍,跨层走意味着使用了一次特殊机会。 但是,显然这对数据范围有严格要 阅读全文
posted @ 2023-11-10 22:01 alloverzyt 阅读(11) 评论(0) 推荐(0) 编辑
摘要:去年就看过树链剖分的视频了,当时连树状数组,线段树都没学,对树的 dfs 也一知半解,所以基本完全听不懂。昨天又重新看了一般,感觉思路挺简单,应该比线段树简单吧,从用树链剖分求 LCA 来看确实是这样的,但是没有想到的是用线段树维护树链剖分。QAQ 这应该是我打过最长的代码吧!(3K) 树链剖分 只 阅读全文
posted @ 2023-10-14 09:35 alloverzyt 阅读(5) 评论(0) 推荐(0) 编辑
摘要:今天有空来专门总结一下代码模版,顺便定制一张代码模版鼠标垫,哦吼!!! ↑这就是预期效果啦!!! 下面开始总结算法模版: 有关统一方面的算法过多时,会自动整理成一个专题放在这里: 最短路专题 素数筛(线性筛) 时间复杂度 \(O(N)\) void primes(int n){//线性筛区间[1,n 阅读全文
posted @ 2023-10-07 19:53 alloverzyt 阅读(24) 评论(0) 推荐(0) 编辑
摘要:算法:线段树 哦吼!终于来学线段树啦~~ 拖了好久都没有敢学,主要是基础知识点不熟,代码能力太弱。但是现在已经是时候了。 来看: 线段树(Segment Tree)几乎是算法竞赛最常用的数据结构了,它主要用于维护 区间信息 (要求满足结合律)。与树状数组相比,它可以实现 \(O(log⁡\ n)\) 阅读全文
posted @ 2023-10-04 17:00 alloverzyt 阅读(6) 评论(0) 推荐(0) 编辑
摘要:虽然我很懒,但集训期间还是强迫我自己写一下博客吧! 搜索剪枝 不搜不知道,我的搜索如同一坨shift。 搜索没逻辑,剪枝随便捡,然后喜提 with return value 3221225725 P1025数的划分 非常简单的一道,数的拆分题 题目描述 将整数 \(n\) 分成 \(k\) 份,且每 阅读全文
posted @ 2023-10-01 17:04 alloverzyt 阅读(6) 评论(0) 推荐(0) 编辑
摘要:依旧,和动态规划一样,逆元这个问题一直困扰了我很久,很烦人。 阅读全文
posted @ 2023-08-05 14:40 alloverzyt 阅读(23) 评论(0) 推荐(0) 编辑
摘要:太恐怖了,今天一复习动态规划,才发现我什么都不会,0/1背包都打不出来,还学什么斜率优化DP,四边形不等式DP,学个喘喘,so scary,到头来发现自己是小白,啥都不会啊!!! 阅读全文
posted @ 2023-07-25 11:16 alloverzyt 阅读(7) 评论(0) 推荐(0) 编辑
摘要:例题:洛谷中位数 以下题解来自于 https://www.luogu.com.cn/blog/SeanMoe/solution-p1168 使用两个堆,大根堆维护较小的值,小根堆维护较大的值 即小根堆的堆顶是较大的数中最小的,大根堆的堆顶是较小的数中最大的 将大于大根堆堆顶的数(比所有大根堆中的元素 阅读全文
posted @ 2023-06-29 20:32 alloverzyt 阅读(15) 评论(0) 推荐(0) 编辑
摘要:在看完洛谷大佬的 最详细讲解 以后,我还是不能说没有完全不懂,所以干脆自己写一篇后缀数组详解,造福后人(QAQ) 本篇讲解引用例子和图片来自某不知名视频资源的大佬,如有知道大佬姓名,会立刻回来标注的。 开始之前,先要了解这些数组是干嘛的,一定要记好。 一下以长度为8的字符串aabaaaab为例子,进 阅读全文
posted @ 2023-05-02 16:19 alloverzyt 阅读(60) 评论(1) 推荐(0) 编辑
摘要:匆匆忙忙中学了很多算法,但基本都是打个板子就跑路了,有些算法有个人比较深入和独特的见解,但大部分,只是实现例题的需求,对算法的作用似懂非懂,所以写篇博客整理一下。 无旋平衡树(treap) 高级数据结构:树和堆 可以允许的操作:插入,删除,查询某数排名,查询某排名的树(第K大),求某数的前驱,后驱( 阅读全文
posted @ 2023-05-01 14:13 alloverzyt 阅读(33) 评论(0) 推荐(1) 编辑
摘要:rand()生成的伪随机数已经足够我们实用,为了跟好的理解rand()跟seed的关系,做了一些测试! rand()函数种子默认为1,在每一次程序运行中,随机数相同,在一次运行中,可将生成数看做随机 #include<bits/stdc++.h> using namespace std; int m 阅读全文
posted @ 2023-04-22 17:46 alloverzyt 阅读(16) 评论(0) 推荐(0) 编辑