会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
lbh123
博客园
首页
新随笔
联系
订阅
管理
2025年10月5日
Tarjan详解
摘要: \(Tarjan\) 作用: 首先,我们要了解一个东西:强联通分量。 \(OI-Wiki\) 里说: 强连通的定义是:有向图 G 强连通是指,G 中任意两个结点连通。 强连通分量(Strongly Connected Components,SCC)的定义是:极大的强连通子图。 \(Tarjan\)
阅读全文
posted @ 2025-10-05 14:59 lbh123
阅读(4)
评论(0)
推荐(0)
2025年7月21日
基础数论(未更新完全)
摘要: 质数相关算法 01 Miller–Rabin 前置定理: 费马小定理 若 \(p\) 为素数,\(a\)为整数,且\(a\)与\(p\)互素,那么 \[a^{p-1}\equiv 1(\mod p) \]我们设 \(d\times 2^r=p-1\) ,那么式子就变成了 \[a^{d\times 2
阅读全文
posted @ 2025-07-21 15:02 lbh123
阅读(14)
评论(0)
推荐(1)
2025年5月13日
最小生成树
摘要: \(T1:\)北极通信网络 只需要在最后计算时把卫星减掉即可,注意:输出最大边长,多测要清空! //#pragma GCC optimize("O2") #include<bits/stdc++.h> using namespace std; int n,m; int fa[1000010]; do
阅读全文
posted @ 2025-05-13 20:44 lbh123
阅读(18)
评论(0)
推荐(0)
2025年3月11日
KMP
摘要: kmp 一个字符串操作,快速在主串中寻找模式串。 我们先看一下暴力寻找方法: 暴力 从主串中一个一个寻找模式串的起点,然后按照起点向后枚举每个模式串与主串的字符 时间复杂度: \(O(nm)\) 其中n为主串长度,m为模式串长度,在最慢情况下。 KMP 我们发现在暴力情况下极限长度会炸,所以就用到了
阅读全文
posted @ 2025-03-11 20:42 lbh123
阅读(25)
评论(0)
推荐(0)
2025年1月23日
数位DP
摘要: [数位DP] 运用记忆化搜索来对每一位枚举, 一般需要枚举以下几种参数: id:枚举到第几位。 x:当前位是否与num[id]相等,即当前是否为上限。 zero:是否有前导0 前导0 签到题爆0 sum:其他题目需要的(如\(luogu\) \(P2602\) \([ZJOI2010]\) 数字计数
阅读全文
posted @ 2025-01-23 20:57 lbh123
阅读(20)
评论(0)
推荐(0)
2025年1月20日
线段树
摘要: [线段树] 本质为二叉树 用来区间查询,区间修改, 单点查询,单点修改 运用结构体存储。 struct node{ int sum,laze; }tree[N*4];//四倍空间 //建树 void build_tree(int id,int l,int r){ if(l==r){ tree[id]
阅读全文
posted @ 2025-01-20 20:57 lbh123
阅读(26)
评论(0)
推荐(0)
BFS及其优化
摘要: BFS及其优化 BFS可实现问题: [连通块] (DFS也行) [最短路] (DFS又行) [曼哈顿距离] (DFS好像大概也许行) 大概步骤: 1.起点入队列,打标记。 2.弹出队首进行操作。 3.按照题目要求加入队列新点并打标记。 例题: 1. accoders【一本通提高篇广搜的优化技巧】山峰
阅读全文
posted @ 2025-01-20 20:14 lbh123
阅读(43)
评论(0)
推荐(0)
2025年1月17日
最小生成树
摘要: 最小生成树 [生成树] 从一个无向连通图中选取一些边使这张图是一颗树。 [最小生成树] 在生成树的基础上使边权和最小。 [Kruskal] 寻找满足条件的边 贪心,从未选取的边中选一条边权最小的边, 选完后不出环即可。 我们需要判断: 当前最小边权的边。 这条边所连接的两个点的连通性。 用并查集判断
阅读全文
posted @ 2025-01-17 20:57 lbh123
阅读(23)
评论(0)
推荐(0)
最短路(floyd,dijkstra,spfa)
摘要: 最短路 [\(floyd\)] 思考枚举 \(k\) 作为中转点来进行赋最小值, 原转移为 \(a[k][i][j]=min(a[k][i][j],a[k-1][i][k-1],a[k-1][k-1][j]);\) 经空间压缩后为 \(a[i][j]=min(a[i][j],a[i][k]+a[k]
阅读全文
posted @ 2025-01-17 20:51 lbh123
阅读(27)
评论(0)
推荐(0)
二分与三分(分治)
摘要: 二分与三分(分治) [整数二分] 写法1(求最小值最大): int l=1,r=n; while(l<r){ // 答案可行区间 int mid=(l+r+1)/2;//加1修正 | | if(check(mid)){//mid成立,舍去左边。 L|______________m__________
阅读全文
posted @ 2025-01-17 08:01 lbh123
阅读(31)
评论(0)
推荐(0)
下一页
公告