自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 收藏
  • 关注

原创 2007-2024 湖南大学866数据结构 代码算法设计真题

本文汇总了数据结构代码题合集,包含链表去重、最大子段和、完全二叉树判断、DAG路径计数、约瑟夫环和链表插入排序等典型算法实现。各题目均提供完整C++代码实现,涵盖链表操作、动态规划、树遍历和图搜索等核心数据结构知识点。其中链表去重算法通过双指针删除重复节点,最大子段和采用动态规划求解,完全二叉树判断基于层次遍历,DAG路径计数使用深度优先搜索,约瑟夫环模拟循环链表过程,链表插入排序实现稳定排序。这些代码示例可作为数据结构与算法学习的实践参考。

2025-10-22 22:16:28 1067 7

原创 数据结构 力扣 练习

本文总结了几个经典算法题目的解法,主要包括双指针、图和查找三类算法。双指针部分介绍了快慢指针(寻找重复数)和首尾指针(盛水容器)的应用;图论部分讲解了拓扑排序在课程表问题中的实现;查找部分重点分析了二分查找在旋转数组最小值、峰值检测和重复数查找中的灵活运用。代码示例展示了各题的核心解法,涵盖了指针移动、环检测、边界收缩等常见算法技巧。

2025-11-13 21:49:20 387 1

原创 Codeforces Round 938 A-H

Codeforces Round 938 A-H

2024-04-17 21:53:35 1226

原创 Educational Codeforces Round 164 A-E

Educational Codeforces Round 164 A-E

2024-04-17 21:08:30 1046

原创 Codeforces Round 939

Codeforces Round 939

2024-04-17 16:24:04 1123

原创 sql 注入 ctf wiki

MySQL 4版本时用version=9,MySQL 5版本时用version=10 UNION SELECT GROUP_CONCAT(table_name) FROM information_schema.tables WHERE。用户自定义的表 UNION SELECT TABLE_NAME FROM information_schema.tables WHERE。1,1’,1’‘,1’±,1’'±(双引号带括号)

2023-11-29 19:13:54 1439

原创 三分/01分数规划

二分答案,然后分数规划模型,转换一下发现就是重新定义每个人的点权,然后跑一个树上背包,但是树上背包要满足:儿子选了父亲一定要选。与之前不同的是,此题没有限制选的数量,而是限制分母的和,二分完后,转换为背包问题即可。传送带,每个传送带只有一个点出发/到达是最优的,所以单峰,满足三分性。从小到大排序,三分最后出成绩的时间,然后贪心,将晚出的学科进行操作。注意测试点C==1e16时会炸longlong,进行特判。转换一下,其实就是买的物品个数变成了一个范围。的时候,一旦出现一个满足范围且。,特殊预处理一下即可。

2023-11-17 17:02:18 251

原创 CF gym 103855 M 切比雪夫距离转换

【代码】CF gym 103855 M 切比雪夫距离转换。

2023-10-09 17:41:44 274

原创 树上启发式合并 待补

对于每个子树,直接遍历所有轻儿子,继承重儿子。会了板子后,修改维护的东西和莫队是一样的。板子,改一下修改操作就行了。

2023-10-05 20:42:34 335

原创 2023湖南省赛游记/题解

因为对于这10个数字来说,后面的数字它只有两种身份,之前选了/没选,所以当前位相同,之前不同的数字个数相同,剩下的方案数就相同,就可以用记忆化。然后对于每一件物品,重量小的物品可以合并成大物品,但大物品不能拆解成小物品,所以我们按位从小到大枚举目标物品数组,贪心地用小物品去满足当前位的数量,然后将剩下的物品贪心地两两合并成下一位的物品。数位dp,不知道省赛脑子犯了什么抽,受前几天一道数位dp,直接把状态数组压入map暴力记忆化的影响,想当然的觉得这题也是这么做,大哥直接提出时间复杂度是不够的。

2023-10-02 22:08:08 2829

原创 容斥 / dp

因为物品数很少,不合法状态就是各物品超出限制后的并集,可以状压枚举那几个物品超出了限制,然后容斥解决。首先可以用完全背包处理出无限制的方案数,然后考虑怎么剪去不合法状态。一类问题:选出几个数,然后问这几个数的gcd为。的方案数,然后可以逆推,首先可以直接求出。的方案数即可,发现复杂度是一个级数求和,太大,每次做一次背包T。的个数,然后容斥剪去。

2023-09-20 16:00:50 259

原创 矩阵与图

阶有向图,边权为 1,然后给一个整数。重新定义dp方程然后转移,初始化从。阶有向图,每条边的边权均为。,你的任务是对于所有点对。阶加权有向图和一个整数。每次两个矩阵转移时只取最短。,你的任务是对于每个点对。限长路径计数/最短路。

2023-09-20 11:43:47 281

原创 决策单调性优化dp

很像邮局那种,我们肯定是将区间中点靠得比较近的区间交给一个自动的机器管理即可,所以先将区间排序。然后转换为2D1D类经典问题,先分析这个dp肯定是满足决策单调的,接下来就是如何快速求。易证机器开始区间肯定是在某个区间左端点,或者结束区间时某个区间右端点,所以正常可以枚举。证明决策单调,然后用单调队列维护每个点作为最优决策点的范围,每次加入点 二分更新。决策单调,分治然后暴力更新区间信息,因为每个递归层区间端点最多移动。转换一下式子,分成两次dp,每次可以决策单调优化。,然后枚举开始的时间,然后再遍历一遍。

2023-09-07 13:19:34 338

原创 wqs二分/带权二分

同一类最小生成树选几个特殊边的问题,打表或者感性理解是一个下凸的函数,直接套wqs二分,每次给特殊边附加权,然后重跑一次kruskal。是一个凸函数,可以二分切线的斜率,转换成无限制问题,然后根据选了几个调整斜率,使切点横坐标逼近。个部分的最小距离和,然后对于一个部分,反证易得邮局应该放在中间的村庄。,是一个上凸函数,所以直接套wqs二分,每次用斜率优化。是一个上凸函数,先增后减,所以wqs二分优化掉。的最长链的最大值,发现不好转移,比如将儿子。,然后转移就很好写了,两种决策,合并到。

2023-09-02 16:26:35 345

原创 矩阵树定理

求行列式(取模用辗转相除),即图的生成树个数。推式子,套板子,特殊处理概率为1的点,防止除0。,生成树构成的边的概率乘积,再累加。板子 注意要去掉最后一行最后一列。构造一个拉普拉斯矩阵:对于边。

2023-08-26 20:57:02 244

原创 CF736D Permutations

然后考虑一个条件失效,那么通过那个位置的代数余子式,就可以得到这一行失效后的合法方案数,又已知伴随矩阵各个位置代表各个代数余子式,首先领接矩阵表示哪个数可以放哪个位置,设为1,然后它所构成的。阶积和式就是每个条件都成立的合法方案数。*给个位置上奇偶性只取决于。

2023-08-23 23:02:58 177

原创 概率期望 / dp

我们发现当前卡牌是否发动技能的概率受到前面卡牌的影响(前面选了几张卡,那么我再怎么也要有几轮把前面的卡选完),但不受到后面卡牌的影响,所以我们设。考虑有等概率随机按开关的情况,其实在前面我们就能知道,给出的数据我们一共要按的开关就只有那几个,一个开关重复按两次是没有效果的,按错了开关到最后也得按回去,所以我们状态设计就是已经按了几个要按的开关,很小,直接状压,然后暴力枚举状态看是否全部覆盖,发现坐标跨度很大,对坐标离散化,依次差分修改,期望dp,从已经满足的点倒着推,首先考虑状态,发现。

2023-08-19 16:18:32 297

原创 Educational Codeforces Round 153 D-E dp,bfs

Educational Codeforces Round 153 D-E dp,bfs

2023-08-19 16:00:18 335

原创 codeforces #893 D-E1

然后分别求前缀后缀最大值,求完后分类枚举分割点,最后求出每个。发现其实是一个树状结构,离线遍历一遍树然后维护各个节点求答案。问题就可以转换,我们先分类,然后找到分界点,dp出每个。两种情况,最长0串在左边,最长1串在右边,或者反过来。操作的东西,然后记录上一次操作所在的点。操作,只要添加节点,倍增维护祖先。首先分析最后要求的,如果再。应该越大越好,然后枚举。操作,就是倍增向上跳。操作,我们维护一个只有。操作,记录当前所在节点。转移直接枚举开头在哪。

2023-08-16 14:47:53 140

原创 整体二分

整体二分模板题,先离散化,本来对于每一个查询进行二分答案,但时间复杂度较高。所以整体二分,先将数和询问分别存入。中,然后不断二分值域,每次分出。,并用二维树状数组来进行查询。

2023-08-15 18:34:29 224

原创 分块 莫队

分块 莫队

2023-08-15 18:16:37 152

原创 树链剖分

树链剖分

2023-08-15 15:49:45 131

原创 树状数组 线段树 可持久化线段树

树状数组 线段树 可持久化线段树

2023-08-15 15:15:19 161

原创 虚树

虚树

2023-08-15 01:04:27 264

原创 CF 765D Artsem and Saunders 构造

CF 765D Artsem and Saunders

2023-08-14 23:22:12 181

原创 CF 1859E Maximum Monogonosity 绝对值的巧妙处理和状态设计

CF 1859E Maximum Monogonosity

2023-08-14 22:39:23 268

原创 树形dp记录路径 CF1779F Xorcerer’s Stones

树形dp记录转移路径

2023-07-25 13:34:38 201

原创 博弈论 sg函数

斐波那契博弈:有一堆个数为n(n>=2)的石子,先手不能在第一次把所有的石子取完,至少取1颗,之后每次可以取的石子数至少为1,至多为对手刚取的石子数的2倍,取走最后一个石子的人为获胜。的节点会产生贡献,如果固定根,他们各点的异或和很好求,但是现在明显要用换根来计算各点作为根的贡献,首先我们考虑第一遍dfs的时候需要什么状态,比较显然的就是当。打表,套getsg板子,要注意的是操作一次,炸弹会变成两个,相较于之前要么行坐标改变,要么列坐标改变,因此枚举操作。2.没有个数大于1的堆,异或和为0,先手必胜。

2023-07-11 00:59:15 347

原创 bitset优化

bitset对于暴力的优化

2023-05-24 01:02:38 800

原创 CF1060E Sergey and Subway

CF1060E Sergey and Subway

2023-05-04 16:12:40 681

原创 CF8C Looking for Order

codeforces 8C Looking for Order

2023-05-04 01:03:01 154

原创 力扣贪心

也就是说对于已有的两两重合的区间,只需要移除尾部更靠后的区间即可,这样对后面区间的影响比较小。先从简单问题开始想:有三个区间,1与2重合,2与3重合,1与3不重合,显然移除2区间即可。做法就是从后往前遍历,用map记录某个湖最早出现的位置,不断更新。相反不下雨的一天,只需要抽出当前装满水且之后最先下雨的湖泊。然后从前往后模拟,每次一个湖装满水,就将其加入优先队列当中。题目终点就转换成了如何找当前装满水且之后最先下雨的湖泊。比较好想的思路就是,模拟,遇到下雨天。

2023-04-16 11:11:14 433

原创 近几日总结

近几日总结

2023-04-11 19:54:58 416

原创 2022.3.29-3.30总结 纯数位dp

2023.3.20-3.31 学习总结

2023-03-31 09:30:07 266

原创 2023.3.28 总结

2023.3.28 学习总结

2023-03-28 23:48:56 238

原创 2022.3.27 总结

2022.3.27做题学习总结

2023-03-28 00:55:06 295

原创 CF223B Two Strings

【代码】CF223B Two Strings。

2023-03-25 12:21:14 147

原创 dp优化入门学习

dp优化

2023-03-21 00:18:46 273

原创 CF1788C Matching Numbers

CF 1788C Matching Numbers

2023-03-09 20:15:01 191 1

原创 codeforces 1792D Fixed Prefix Permutations

codeforces 1792D Fixed Prefix Permutations

2023-03-08 00:08:58 296

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除