自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 简单C++日志系统

简单C++日志系统 log4cpp

2022-10-31 11:37:29 256 1

原创 jiangly的并查集模板

并查集模板jls的并查集模板 orz orz orz orzstruct DSU { std::vector<int> p, siz; DSU(int n) : p(n+1), siz(n+1, 1) { std::iota(p.begin(), p.end(), 0); } int find(int x) { return p[x] == x ? x : p[x] = find(p[x]); } bool same(int x, in

2022-04-13 17:03:24 2361

原创 倍增法求LCA模板封装

倍增法求LCA原理 树上的任意两点的最近公共祖先,是两点之间dfs序中的最小值。使用st表维护dfs序中的区间最小值。st[cnt][0]st[cnt][0]st[cnt][0]:树的dfsdfsdfs序,第cntcntcnt个遍历的点是st[cnt][0]st[cnt][0]st[cnt][0]dfn[x]dfn[x]dfn[x]:节点编号为x的节点,第一次出现在dfs序中的位置dep[x]dep[x]dep[x]:节点x在树中的深度模板struct LCA { /* $st[

2022-04-11 15:36:43 320

原创 河南大学软件学院-大一上-计算机科学导论期末复习笔记

计算机组成章节中,没有整理有关指令集的知识点,但在期末考试中有考察。

2022-03-07 16:22:27 625

原创 分层图 例题+模板

分层图本质是在遍历图的过程中,有k条特殊边(包括但不限于,权重为0、逆向、权重减半等)。这时,我们只需建立k层图,每层图均与原图相同,每层图之间连接特殊边(权值为0的边、权值减半的边等)。模板一P4568 [JLOI2011]飞行路线题意:有k不超过k条免费的边,求最小花费。算法:分层图+地杰斯特拉注意:每层图的终点均需要连接一条免费边,避免k值大于路径。#include <bits/stdc++.h>#define pii pair<int, int>using

2022-02-23 15:19:56 312

原创 进阶图论算法汇总(LCA、强(双)连通分量、欧拉路径与欧拉回路、拓扑排序、01规划)-acwing算法提高课 acm

文章目录LCA向上标记法代码倍增法预处理 O(nlogn)O(nlogn)O(nlogn)询问 O(logn)O(logn)O(logn)代码Tarjan思路代码有向图的强连通分量 SCCTarjan用途算法思路模板例题一些结论无向图的双联通分量 DCC算法思路代码-边代码-点一些结论欧拉路径与欧拉回路判定思路技巧代码:[判定欧拉回路](https://www.acwing.com/problem/content/1186/)拓扑排序用途思路代码01规划用处思路代码差分约束二分图Floyd基础图论算法汇

2022-02-10 22:53:33 439

原创 LCA-最近公共祖先 向上标记法、倍增法、Tarjan

LCA向上标记法时间复杂度 O(n∗m)O(n*m)O(n∗m)如果两个结点不相同,就将较深的结点向上移动,直到移动到相同结点,那么该结点即为公共祖先结点。代码//预处理每个结点的深度,以及结点的父结点的编号void dfs(int u, int father){ depth[u]=depth[father]+1; fa[u]=father; for(int i=h[u];~i;i=ne[i]){ int v=e[i]; if(v!=fa

2022-02-07 22:45:59 372

原创 线段树扫描线(面积并、周长并)例题

扫描线问题概述算法核心:扫描。即有一根线从左侧扫描到右侧,在扫描过程中可以统计一些信息。其中对于扫描的每个x,存在垂直x轴的线段,线段信息用线段树维护(注意端点)。配套使用:离散化(y轴数据范围很大时候,不可能建立很大的线段树)、二分(查找离散化结果)、懒标记(对区间修改)注意:周长并和面积并的懒标记不需要下传(等同于cnt区间覆盖的次数)acwing 248. 窗内的星星思路因为我们已经知道了矩形的长和宽,所以对于任意一个星星(x, y, c), 都可以得到一个确切的矩形,所以每一个星星,

2022-01-28 11:30:56 921

原创 ROS入门(ROS安装+编译器配置)详细教程 ROSneotic安装 VScode的ROS开发环境的简单配置

ROS安装 + vscode简单配置假设你已经安装好了Ubuntu 20.04,并只连接了国内网络。换源Ctrl + Alt + T打开终端备份并打开sudo cp /etc/apt/sources.list /etc/apt/sources.list.baksudo gedit /etc/apt/sources.list复制一下内容,替换默认的源#添加阿里源deb http://mirrors.aliyun.com/ubuntu/ focal main restricted

2022-01-21 00:31:12 3919

原创 树状数组(单点修改|查询前缀和、单点修改|单点查询、单点修改|区间查询、区间修改|单点查询、区间修改|区间查询) 学习笔记+例题

树状数组算法作用动态维护前缀和、异或和、最大值、最小值单点修改|查询前缀和、单点修改|单点查询、单点修改|区间查询、区间修改|单点查询前置知识lowbit(x)运算:x&-x一些公式对于任意一个数xxx:t[x]t[x]t[x]保存以xxx为根的子树中叶节点的和.t[x]t[x]t[x]节点所覆盖的长度等于lowbit(x)lowbit(x)lowbit(x)t[x]t[x]t[x]节点的父节点为t[x+lowbit(x)]t[x+lowbit(x)]t[x+lowbit

2022-01-19 14:15:42 444

原创 基础图论算法汇总(最短路、最小生成树、二分图)- 算法竞赛acm

图论最短路Dijkstra(朴素版)算法作用求稠密图的单源最短路使用邻接矩阵存图算法思路初始化距离为正无穷,dis[1] = 0;循环迭代n次,每次可以确定一个点遍历该点的每一个节点,找到不在close_set中距离集合最近的点标记选中该点用该点更新其他点的距离dis[j] = min(dis[j], dis[t] + g[t][j]);代码#include<bits/stdc++.h>using namespace std;const int maxn

2022-01-19 00:31:02 815

原创 算法竞赛vscode配置指南(待更新)

竞赛vscode配置指南chapter 1 基础配置step 0. 排除风险打开cmd,输入whoami。 如果用户名是中文,建议更改用户名为英文,或新建一个用户名为英文的用户。所有安装路径推荐填写无中文、无空格等特殊字符的路径。step 1. 安装wingw-w64正常下载速度会比较慢,如下载困难,可使用下方百度云链接:https://pan.baidu.com/s/16Jec-xvAcWZ_LBktd0GsqA 提取码:lrgh解压文件, 这里以解压到C盘根目录为例

2022-01-15 18:37:46 1053

原创 ros批量发布静态变换的两种方法

ROS发布静态坐标变化消息类型std_msgs/Header header uint32 seq time stamp string frame_idstring child_frame_idgeometry_msgs/Transform transform geometry_msgs/Vector3 translation float64 x float64 y float64 z geometry_msgs/Quaternion rotation

2022-01-15 17:43:12 922

原创 LaTeX + vscode 安装配置详细步骤

安装LaTeX下载ISO使用清华开源平台tuna可快速下载。搭配IDM使用效果更佳(使用校园网搭配IDM下载约20分钟)进入https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/Images/下载texlive.iso安装将下载好的iso文件解压运行install-tl-windows.bat注意 不是运行.exe文件注意 在安装过程中不要关闭自动打开的cmd和窗口选择安装路径,建议安装到C盘,避免以后使用中不必要

2021-11-29 08:37:58 229

原创 acm-中位数问题-acwing(货仓选址、均分纸牌、糖果传递、七夕祭)

中位数问题acwing 104 货仓选址思路取坐标的中位数,作为仓库的位置。证明代码#include <bits/stdc++.h>#define endl "\n"using namespace std;const int maxn = 100010;int a[maxn];int res;int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; cin &g

2021-11-20 21:58:23 290

原创 二分模板 + 讲解笔记

二分int upper_bound_search(int a[], int l, int r){ while(l < r){ int mid = l + r >> 1; if(check_upper(mid)) r = mid; else l = mid + 1; } return l;}int lower_bound_search(int a[], int l, int r){ while(l &lt

2021-10-09 09:33:16 52

原创 归并排序、快速排序模板

快速排序void q_sort_1(int a[], int l, int r){ if(l >= r) return; int x = a[l], i = l - 1, j = r + 1;// do..while()留出空余 while(i < j){//穿过 do i++; while(a[i] < x);//等于也停下 do j--; while(a[j] > x); if(i < j) swap

2021-10-09 09:31:06 50

原创 c++字符串学习笔记

字符串(string 类)声明#include<string>#include<iostream>using namespace std;string str1;//生成空字符串cin << str1;cout << str1;string str2("hello");//生成并初始化cout << str2;string str3(str2);//hellocout << str3;string str

2021-10-09 09:09:43 113

原创 STL学习手册

STLC标准库strlen() 字符串长度strcmp() 字符串比较strcpy() 字符串拷贝memset() 暴力清空memcpy() 暴力拷贝三角函数、指数函数、浮点取整函数qsort() C语言快排rand() 随机数malloc() free() C语言动态分配内存time(0) 从1970年到现在的秒数(配合随机数)clock() 程序启动到目前位置的毫秒数isdigit(), isalpha(),判断字符是否为数字、大小写字母生成随机数//生成随机数

2021-10-09 08:34:19 497

原创 最全区间问题汇总(区间合并,区间选点,区间分组,区间覆盖)

区间问题汇总区间合并Description给定 nnn 个区间 [li,ri][li,ri][l_i,r_i][l_i,r_i][li​,ri​][li​,ri​],要求合并所有有交集的区间。注意如果在端点处相交,也算有交集。输出合并完成后的区间个数。例如:$[1,3][1,3] 和和和 [2,6][2,6] 可以合并为一个区间可以合并为一个区间可以合并为一个区间 [1,6][1,6]$。Input第一行包含整数 nnn。接下来 nnn 行,每行包含两个整数 lll 和 rrr。51

2021-10-04 17:10:49 391

原创 指针与引用学习笔记

指针与引用指针的基本用法指针的定义使用指针改变地址使用指针更改变量的值int *p = NULL;int a = 0, b = 5;p = &a; //指针的赋值:将a的内存地址赋值指针p*p = b; //指针的赋值:将(int)b=5的值赋给(int)a注:& 表示取址、* 表示取值&a 的数据类型为int型指针;*p数据类型为整型int结构体指针#incldue<iostream>using namespace std;struc

2021-09-29 19:34:19 69

原创 算法竞赛中C++的简单特性(构造函数、IO、new动态内存、重载)学习笔记

c++ 的特性结构体的构造函数#include<iostream>using namespace std;//构造函数的写法1struct st{ int a, b; st(int _a, int _b){ a = _a; b = _b; }};//构造函数的写法2struct st_{ int a, b; st_(int a_, int b_):a(a_), b(b_){} //st_(int

2021-09-29 19:29:00 104

原创 c++ 高精度模板 算法竞赛

大整数存储定义int型数组d[l000], 那么这个数组中的每一位就代表了存放的整数的每一位。如将整数235813 存储到数组中,则有d[0] = 3, d[l] = 1, d[2] = 8, d[3] = 5, d[4] = 3, d[5] = 2, 即整数的高位存储在数组的高位,整数的低位存储在数组的低位。struct bign{ int d[1005]; int len; bign(){ memset(d,0,sizeof(d)); len=

2021-09-29 19:12:57 144

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除