CS_LB's Blog
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
连通图的遍历

连通图的遍历

连通图的遍历 “连通块问题”,是基础搜索。用DFS或BFS都行:遍历一个连通块(找到这个连通块中所有的’#‘,并标记已经搜过,不用再搜);再遍历下一个连通块…;遍历完所有连通块,统计有多少个连通块。 全球变暖题目链接:全球变暖 步骤: 对图g[N][N]进行循环,每次从是陆地并且没有遍历过的点开始搜索 进入dfs函数,将当前搜到的点置为true 然后以此点为中心向四个方向遍历,直到周围没有满
2024-04-11
算法 > 图论
#算法 #图论
单调栈和单调队列

单调栈和单调队列

单调栈和单调队列单调栈和优先队列单调栈能保证全部元素的单调性,会直接舍去不合的元素,因此没有额外维护成本小根堆只能保证堆顶是最小值,不会直接舍去元素,但需要O(logn)的decreaseKey成本 有些题目答案一定是当前最大最小值,直接用单调栈维护即可,不是答案直接舍去,时间复杂度为O(n)当然使用优先队列也正确,因为堆顶一定是极值,但时间复杂度为O(nlogn) 另外,单调队列是双端版的单调栈
2024-04-11
算法 > 数据结构
#算法 #数据结构
树的直径

树的直径

树的直径 定义:树上任意两节点之间最长的简单路径即为树的「直径」显然,一棵树可以有多条直径,他们的长度相等。可以用两次 DFS 或者树形 DP 的方法在 O(n) 时间求出树的直径。 求树的直径的方法: 任取一点作为起始点k,找到距离该点最远的一个点v。 从点v开始搜,找到距离点v最远的一点u,则uv间的距离是树的直径。 123456789101112131415161718192021
2024-04-10
算法 > 图论
#算法 #图论
区间合并

区间合并

区间合并步骤: 将区间按照左端点进行排序 循环判断,如果下一个区间的左端点小于(等于)当前区间的右端点时则可以合并,并更新右端点的最大值 如果下一个区间的左端点大于当前区间的右端点时则不可以合并,则更新右端点的最大值为下一个区间的右端点 核心代码: 12345678910111213141516171819//t代表有人挤奶牛的区间的集合,f代表没有挤奶牛的区间的集合//初始化 LL m
2024-04-10
算法 > 区间合并
#算法 #区间合并
编译原理

编译原理

Here's something encrypted, password is required to continue reading.
2024-04-10
期末复习 > 编译原理
#期末复习 #编译原理
日期问题

日期问题

日期问题需要考虑的问题 是否是闰年来确定二月的天数 日期是否合理(month在112 day在128/29/30/31(根据月份来判断)) 日期的输出顺序是否合理 日期相同时只需要输出一次 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
2024-04-10
二分查找练习题

二分查找练习题

二分查找练习题卡牌题目链接:卡牌 tips: 记得开long long (最好把所有的数据都从 int 变成 long long) 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647#include <bits/stdc++.h>using namespace
2024-04-08
算法 > 二分算法
#算法 #二分算法
dp背包问题练习题

dp背包问题练习题

dp背包问题练习题货币系统(完全背包)tips: 要将$f[0][0]$ 等特殊的点进行初始化操作 要将$f[N][N] $设置为 $long long$ 1234567891011121314151617181920212223242526272829303132333435//从前v种货币中选,凑出N元钱的方案的集合的长度//第v种货币不选或者选一个/两个/...//如果第v种货币选一个
2024-04-07
算法 > 动态规划 > 背包问题
#算法 #动态规划 #背包问题
线性dp练习题

线性dp练习题

线性dp练习题数字三角形题目链接:数字三角形 tips 因为有些值为负数,因此要将所有$f[i][j]$初始为负无穷如果初始化为0会导致部分$f[i][j]$的值大于 本不应该大于 的f$f[i-1][j-1]$ 1234567891011121314151617181920212223242526272829303132333435#include <bits/stdc++.h>
2024-04-07
算法 > 动态规划 > 线性dp
#算法 #动态规划 #线性dp
图的最短路问题

图的最短路问题

图的最短路问题 单源最短路朴素Dijkstra算法核心思想: 先确定最短距离点 然后用该点去更新其他点的最短距离 适合稠密图变量:dist[N] (距离源点的距离数组) , st[N](某个点是否已经被更新为距离最短的点的集合中的状态数组)重边与自环:在min中会循环找出最短距离的边算法步骤: 初始化:dist 初始化为正无穷(0x3f)memset(dist,0x3f,sizeof(d
2024-04-07
算法 > 图论
#算法 #图论
1…91011121314

搜索

Hexo Fluid
总访问量 次 总访客数 人