摘要: 状态压缩dp 阅读全文
posted @ 2023-12-14 14:40 _Lance 阅读(3) 评论(0) 推荐(0) 编辑
摘要: https://codeforces.com/contest/1903/problem/E 交互题 Geo Game https://codeforces.com/contest/1903/problem/F 2-sat 图论题 Babysitting https://codeforces.com/ 阅读全文
posted @ 2023-12-06 16:08 _Lance 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 栈和队列问题: 循环队列问题: 首先要知道队列的最大大小是多少要多开一个空间才能确定到底是空还是满的比如说,如果是 \((rear+1)\)%\(size\)=\(front\), 那么这个队列就是空的,要至少剩余一个空间,就是要相隔两位此时队列已经满了,不能往里面添加元素了!所以有以下操作 保证队 阅读全文
posted @ 2023-11-21 14:27 _Lance 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 根号分治 CF : https://codeforces.com/contest/1822/problem/G2 //常用头文件! #include <bits/stdc++.h> using namespace std; typedef int64_t i64; #define INF 0x3f3 阅读全文
posted @ 2023-05-13 09:45 _Lance 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 区间dp 递推方程是以区间的形式给出 一般套路 :枚举区间长度 区间端点 区间分界点 然后就是想怎么去对这个区间进行一定的操作 从最原始的地方开始一步步推导方程! for(i=1;i<n;i++)//区间长度为1 { for(j=1;j<=n-i;j++) //区间开头 { for(k=j;k<j+ 阅读全文
posted @ 2023-04-29 11:46 _Lance 阅读(16) 评论(0) 推荐(0) 编辑
摘要: manacher 问题是为了解决最长回文子串的问题!! 这种题目维护的方式和exkmp一样也是维护一个区间,区间中的数 #include <bits/stdc++.h> using namespace std; int n,p[2*n+2]; char s[n+2],t[2*n+3]; void m 阅读全文
posted @ 2023-04-21 15:16 _Lance 阅读(18) 评论(0) 推荐(0) 编辑
摘要: kmp :主要就是用于暴力回退的优化 一般的暴力回退总是回退到前一个 ,要枚举很多次 如果找到规律那么就会发现可以找到上一次最大匹配的位置然后将继续匹配知道匹配不下去然后去更新 代码 kmp是前缀 到某一个为停止 #include <bits/stdc++.h> using namespace st 阅读全文
posted @ 2023-04-20 19:47 _Lance 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 这道题首先先把所有的 关键词用map读入 然后用vector 去存string 和出现的次数 cnt 进行排序 之后读入目标字符串 用stl string自带的查找判断前缀 如果是前缀那么必为0 #include <bits/stdc++.h> using namespace std; struct 阅读全文
posted @ 2023-04-05 19:05 _Lance 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 二.Dijkstra 这个基本上是用来跑边权为非负的图 ,算法复杂度O(n^2+m) 这个算法的思路是这样的: 先确定起点标记为0 然后从起点去看起点所连出去的边,找出边权最小的,再由他去遍历之后点然后继续去更新边权 再取最小 ,可以知道前面已经被访问的点不可能被后面的点再次更新! 一个贪心的基本思 阅读全文
posted @ 2023-03-26 22:07 _Lance 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 一.Bellman-Ford 主要适用场景: 1.这主要是一个用来判断是否存在负环的 2.当边权可为负数时Dijkstra算法不成立!这个可以很容易去判断!!! 所以此时只能去弄 Bellman-Ford !! Bellman-Ford 用 dist[i] 去记录所有节点的最短路径!! 理解:首先确 阅读全文
posted @ 2023-03-25 20:30 _Lance 阅读(45) 评论(0) 推荐(0) 编辑