Spfa求最短路与判负环
# Spfa 求最短路 # 背景 给定一个 nnn 个点 mmm 条边的有向图,图中可能存在重边和自环,边权可能为负数 请你求出 111 号点到 nnn 号点的最短距离,如果无法从 111 号点走到 nnn 号点,则输出 impossible 数据保证不存在负权回路 # 数据范围 1≤n,m≤1051 \le n,m \le 10^51≤n,m≤105 # 思路 利用邻接表存图,队列操作 如果当前到 j(e[i]) 点的步数小于遍历时,先去 d[t] 点再去 j(e[i]) 点的步数,则更新 d[j] 的值 如果此时, j(e[i])...
more...有边数限制的最短路(Bellman-Ford)
# 背景 给定一个 nnn 个点 mmm 条边的有向图,图中可能存在重边和自环,边权可能为负数 请你求出 111 号点到 nnn 号点的,最多经过 kkk 条边的最短距离,如果无法从 111 号点走到 nnn 号点,输出 impossible # 数据范围 1≤n,k≤5001 \le n, k \le 5001≤n,k≤500 1≤m≤100001 \le m \le 100001≤m≤10000 1≤x,y≤n1 \le x, y \le n1≤x,y≤n # 思路 用结构体记录路径,经历 kkk 次循环,每次循环都对 d[i]...
more...拓扑排序
# 拓扑排序的概念 拓扑排序要解决的问题是如何给一个有向无环图的所有节点排序 在一个 DAGDAGDAG (有向无环图)中,将图中的顶点以线性方式进行排序,使得对任何顶点 uuu 到 vvv 的有向边 (u,v)(u,v)(u,v),都有 uuu 在 vvv 前面 # Kahn 算法求拓扑排序 利用队列求解,不断把入度为 000 的点推入队列,每次从队列中取出一个,对于该点能到的所有边,减去到的点的入度,如果又到 000 了的话,则继续推入队列,直到队列空为止 C++123456789101112131415161718192021222324void solve ()...
more...KMP
# KMP 算法的定义 KMPKMPKMP 算法常用于在一个文本串 SSS 内查找一个模式串 PPP 出现的位置,算法流程如下: 假设现在文本串 SSS 匹配到 iii 位置,模式串匹配到 jjj 位置: 如果 j = -1 ,或者当前字符匹配成功( s[i] == p[j] ),都令 i++, j++ ,然后继续匹配下一个字符 如果 j != -1 ,并且当前字符匹配失败( s[i] != p[j] ),则令 iii 不变, j = next[j] 。此操作意味着当匹配失败时,模式串 PPP 相对于文本串 SSS 向右移动了 j - next[j] 位 # next...
more...蓝桥杯2025省B-生产车间
# 题目大意 一个车间有 nnn 台设备,构成以 111 为根结点的一棵树,结点 iii 有权值 wiw_iwi 叶节点的权值 wiw_iwi 表示每单位时间将产出 wiw_iwi 单位的材料并送往父结点 根结点的权值 wiw_iwi 表示每单位时间内能打包多少单位成品 其他结点的权值 wiw_iwi 表示每单位时间最多能加工 wiw_iwi 单位的材料并送往父结点。 由于存在某些结点每单位时间收到的材料超过了当前结点的加工能力上限,现计划删除一些结点使得所有结点都能正常运行 请问删除一些结点后,根结点每单位时间内最多能打包多少单位的成品? # 数据范围 对于...
more...