2023年2月19日

摘要: 代码 求区间交集 void get_intersection(vector<PII> &segs) { vector<PII> res; sort(segs.begin(), segs.end()); int l = -2e9, r = 2e9; for (auto seg : segs) { if 阅读全文

posted @ 2023-02-19 16:21 lyc2002 阅读(27) 评论(0) 推荐(0) 编辑

2023年2月18日

摘要: 能解决什么问题 找出树中最长的路径 算法思想 任取一点,求该点到其他点的距离,找到离它最远的点 u 求 u 到其他点的距离,找到离 u 最远的点 v u -> v 就是树的最长路径 由反证法易证:u 是树直径的一个端点 代码 bfs(1); int u = -1; for (int i = 1; i 阅读全文

posted @ 2023-02-18 21:09 lyc2002 阅读(12) 评论(0) 推荐(0) 编辑

摘要: 稠密图 int g[N][N]; 稀疏图 边的条数|E|远小于|V|²的图称为稀疏图 // 对于每个点 k,开一个单链表,存储k所有可以走到的点。h[k] 存储这个单链表的尾结点 int h[N], e[N], ne[N], idx; // 添加一条边a->b void add(int a, int 阅读全文

posted @ 2023-02-18 20:27 lyc2002 阅读(13) 评论(0) 推荐(0) 编辑

2023年2月17日

摘要: 能解决什么问题 走迷宫问题 找连通块 代码 #include <queue> #include <cstring> typedef pair<int, int> PII; int n, m; PII start; int g[N][N]; int dist[N][N]; int dx[] = {0, 阅读全文

posted @ 2023-02-17 19:05 lyc2002 阅读(25) 评论(0) 推荐(0) 编辑

2023年2月14日

摘要: 能解决什么问题 快速的区间操作 算法思想 给定 a[1], a[2], ..., a[n],构造差分数组 b[1], b[2], ..., b[n],使得 a[i] = b[1] + b[2] + ... + b[i]。此时,如果将 a 数组 [l, r] 区间同时加上 c,等价于 b[l] += 阅读全文

posted @ 2023-02-14 21:04 lyc2002 阅读(20) 评论(0) 推荐(0) 编辑

摘要: 能解决什么问题 动态求连续区间和 对于数组 a[N] 可以求出在 a[i] 左边大于 a[i] 的数的个数,在 a[i] 右边小于 a[i] 的值 时间复杂度 O(log n) 代码 int tr[N]; int lowbit(int x) { return x & -x; } void add(i 阅读全文

posted @ 2023-02-14 20:15 lyc2002 阅读(10) 评论(0) 推荐(0) 编辑

摘要: 目录结构 CMakeLists.txt 编写 # 指定 CMake 的最小版本要求 cmake_minimum_required(VERSION 3.0) # 指定工程名称 project(soldier) # 显式定义变量 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAG 阅读全文

posted @ 2023-02-14 10:39 lyc2002 阅读(26) 评论(0) 推荐(0) 编辑

2023年1月10日

摘要: 编译注意 程序要想使用 gdb 调试,编译时要加上 -g 传入参数 设置传入参数:set args 显示传入参数:show args 代码 查看代码:list 文件名:函数名或行号 设置查看代码行数:set listsize 断点 打断点:break 文件名:函数名或行号 删除断点:delete 端 阅读全文

posted @ 2023-01-10 15:11 lyc2002 阅读(23) 评论(0) 推荐(0) 编辑

摘要: 简单示例 src = $(wildcard ./*.c) objs = $(patsubst %.c, %.o, $(src)) target = app $(target):$(objs) $(CC) $^ -o $@ %.o:%.c $(CC) -c $< -o $@ .PHONY:clean 阅读全文

posted @ 2023-01-10 13:27 lyc2002 阅读(15) 评论(0) 推荐(0) 编辑

2023年1月8日

摘要: 目录结构 静态库制作与使用 cd src # 汇编生成.o文件 gcc add.c div.c mult.c sub.c -c -I../include # 生成静态库 ar rcs libcalc.a add.o div.o mult.o sub.o mv libcalc.a ../lib/ cd 阅读全文

posted @ 2023-01-08 17:32 lyc2002 阅读(28) 评论(0) 推荐(0) 编辑