Processing math: 100%

02 2024 档案

摘要:记录 11:03 2024-2-25 http://poj.org/problem?id=3468 目录1. 线段树区间增加 + 区间查询2. 树状数组区间增加 + 区间查询延迟标记3. 分块 1. 线段树 区间增加 + 区间查询 点击查看代码 #include<iostream> #include 阅读全文
posted @ 2024-02-25 11:37 57one 阅读(12) 评论(0) 推荐(0) 编辑
摘要:记录 18:26 2024-2-22 http://poj.org/problem?id=1961 http://poj.org/problem?id=2406 1961 利用KMP构造next数组,其实next数组就是方便于找到下一个应该比较的字符,或者说是不动目标字符,移动查找字符,这里面利用n 阅读全文
posted @ 2024-02-22 21:38 57one 阅读(6) 评论(0) 推荐(0) 编辑
摘要:记录 18:16 2024-2-5 目录1.KMP 1.KMP 先把我之前学时候的笔记拉过来 数据结构学习第二十三天 串的模式匹配(KMP算法) 给定一段文本,从中找出某个指定的关键字 目标 给定一段文本:string=s0s1.....sn1 给定一个模式:$ pattern=p 阅读全文
posted @ 2024-02-21 16:55 57one 阅读(15) 评论(0) 推荐(0) 编辑
摘要:记录 19:46 2024-2-15 https://leetcode.cn/problems/container-with-most-water/ 利用双指针来解,一个在头,一个在尾,每次最小的那个进行移动,然后计算出容积。 ps:刚开始想到了用单调栈来解决,但这道题和单调栈那个例题还不一样。然后 阅读全文
posted @ 2024-02-15 19:50 57one 阅读(6) 评论(0) 推荐(0) 编辑
摘要:记录 18:26 2024-2-15 http://poj.org/problem?id=3614 贪心法,将minspf从大到小排列,然后选取最大的spf 点击查看代码 #include<iostream> #include<vector> #include<algorithm> #include 阅读全文
posted @ 2024-02-15 18:27 57one 阅读(9) 评论(0) 推荐(0) 编辑
摘要:记录 22:01 2024-2-10 http://poj.org/problem?id=1179 区间DP问题。区间DP问题可能需要注意的点就是是根据区间长度来计算的,随着迭代区间长度不断增加,结果也就计算出来了 这种“任意选择一个位置断开, 复制形成2倍长度的链” 的方法,是解决DP中环形结构的 阅读全文
posted @ 2024-02-10 22:34 57one 阅读(10) 评论(0) 推荐(0) 编辑
摘要:记录 13:56 2024-2-10 找到俩个点,获得最大的边权异或值。利用异或的性质,一个值被异或俩次相当于没有异或即 a xor b xor b = a 所以先从顶点出发,获得每个点路径上的异或值,然后对这俩个值进行异或就获得了他们之间路径的异或值。 获取从顶点到每个点路径上的异或值后,可以利用 阅读全文
posted @ 2024-02-10 15:28 57one 阅读(4) 评论(0) 推荐(0) 编辑
摘要:记录 1:30 2024-2-7 1. Trie Trie就是一个边上值为字符的树,我看起来觉得像自动机(应该是吧,读入字符转入不同的阶段) (对我来说需要强调的地方是 数组真是有用的结构,之前看过的代码中使用的结构都比较繁琐点(例如15445project0那个),毕竟是项目数据结构写明确点比较好 阅读全文
posted @ 2024-02-09 23:27 57one 阅读(32) 评论(0) 推荐(0) 编辑
摘要:记录 23:30 2024-2-7 ↑这个时间不准确 因为当时忘记录了 1. 字符串hash(会超时T-T) 点击查看代码 #include<iostream> #include<vector> #include<stdio.h> #include<string.h> using namespace 阅读全文
posted @ 2024-02-08 23:26 57one 阅读(5) 评论(0) 推荐(0) 编辑
摘要:记录 23:39 2024-2-5 manacher算法,是可以在O(n)时间计算回文串的算法 具体思路可以查看Manacher 非常有意思的算法。利用了俩个数组d1[i] 和 d2[i] 分别来记录以位置 i 为中心的长度为奇数和长度为偶数的回文串个数 这里利用了回文串个数也即以i为中心的最长回文 阅读全文
posted @ 2024-02-08 22:59 57one 阅读(4) 评论(0) 推荐(0) 编辑
摘要:记录 23:40 2024-2-5 1. 字符串hash 将字符串转换为hash值。以p=131/13331,将字符串看成P进制数,取一固定值M,求出该P进制数对M的余数,作为该字符的hash值。 可以取M = 264 用 unsigned long long存储这个hash值,这样不 阅读全文
posted @ 2024-02-06 23:41 57one 阅读(43) 评论(0) 推荐(0) 编辑
摘要:记录 23:29 2024-2-5 https://leetcode.cn/problems/longest-palindromic-substring/ 1. dp方法 dp[i][j] s[i, j] 之间能否构成回文子串 [i,j]之间是否能够构成需要考虑[i+1, j-1]是否构成回文子串且 阅读全文
posted @ 2024-02-05 23:36 57one 阅读(29) 评论(0) 推荐(0) 编辑
摘要:记录 18:22 2024-2-1 目录1.最小生成树1.Prim2.Kruskal 1.最小生成树 1.Prim 类似dijkstra,优化可以用最小堆来维护权值最小边 点击查看代码 const int INF = 0x3f3f3f3f; int cost[MAX_V][MAX_V]; // co 阅读全文
posted @ 2024-02-05 18:14 57one 阅读(6) 评论(0) 推荐(0) 编辑
摘要:记录 17:30 2024-2-4 目录1.树状数组1.区间增加 + 单点查询2.区间增加 + 区间查询例题 1.树状数组 树状数组(Binary Indexed Tree)可以完成以下操作 查询前缀和 增加单个元素a[i]的值 lowbit运算 lowbit(n) 定义为 非负整数n在二进制表示下 阅读全文
posted @ 2024-02-05 00:43 57one 阅读(9) 评论(0) 推荐(0) 编辑
摘要:记录 15:48 2024-2-4 目录1.线段树1. 区间增加 + 区间查询2. 延迟标记3. 扫描线4.动态开点与线段树合并例题 1.线段树 线段树是处理区间用的数据结构,最经典的例子是RMQ(Range Minimum Query),查询某个区间上的最大值 这里init/update是从叶子节 阅读全文
posted @ 2024-02-05 00:33 57one 阅读(14) 评论(0) 推荐(0) 编辑
摘要:记录 21:04 2024-2-3 目录1.并查集题目记录 1.并查集 用来快速元素是否属于同一组的数据结构 利用路径压缩和按秩合并防止结构退化 点击查看代码 #define MAX_N 10000 int par[MAX_N]; int rank[MAX_N]; void init(int n) 阅读全文
posted @ 2024-02-04 15:47 57one 阅读(8) 评论(0) 推荐(0) 编辑
摘要:记录 1:34 2024-2-1 目录1.动态规划相关知识1.LCS和LIS和数字三角形1.LCS2.LIS3.数字三角形2.背包问题1. 0-1背包2. 完全背包3. 多重背包4. 分组背包3. 区间DP4. 树形DP1. 背包类树形DP2. 二次扫描与换根法5.环形与后效性1.环形结构上的动态规 阅读全文
posted @ 2024-02-02 21:49 57one 阅读(22) 评论(0) 推荐(0) 编辑
摘要:记录 0:10 2024-2-2 https://leetcode.cn/problems/recover-binary-search-tree ==做了好久没做出来看的题解做的。 分析原因:对dfs还是不够熟悉,特别是涉及到前/中/后序遍历的性质上 因为对二叉搜索树中序遍历得到的结果必然是非递减的 阅读全文
posted @ 2024-02-02 01:31 57one 阅读(3) 评论(0) 推荐(0) 编辑
摘要:记录 20:34 2024-2-1 http://poj.org/problem?id=2139 最短路问题,使用Floyd后遍历选择就可以了。注意是多case输入,答案截尾。 #include<cstdio> #include<cstring> #include<iostream> #define 阅读全文
posted @ 2024-02-01 20:36 57one 阅读(5) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示