自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (4)
  • 收藏
  • 关注

原创 博客迁移

博客迁移至我的博客

2020-07-28 20:32:35 151

原创 图论学习:分层图

分层图的应用范围:比如最短路、网络流等,题目对边的权值提供可选的操作,比如可以将一定数量的边权减半,在此基础上求解最优解。分层图的构建步骤可以描述为:1、先将图复制成 k+1 份 (0 ~ k)2、对于图中的每一条边 <u,v> 从 ui 到 vi+1 建立与题目所给操作相对应的边(i=0,1,…,k)k代表了进行操作的次数,而每层之间点的关系代表了何时进行操作。例题1:洛谷P4822 [BJWC2012]冻结题意:给你一个n个点m条边的无向带权图,每条边有一个通过时间w,现

2020-07-28 10:49:58 3121

原创 图论:倍增LCA模板

/*LCA(最近公共祖先)模板倍增LCA*/#include <bits/stdc++.h>using namespace std;const int maxn=5e5+10;int fa[maxn][30];int n,m,s;int head[maxn],cnt=0;int dep[maxn];struct node{ int v,next;}e[maxn<<1];void add(int u,int v){ e[++cnt].v

2020-07-26 22:05:12 216

原创 数据结构:带权—种类并查集

/*给出一个区间的长度 N,及 M 个子区间和, 形如:x y z, 表示子区间 [x, y] 的和为 z如果一个“子区间和”与前面的“子区间和”冲突,即为错误(而且这个“子区间和”将在接下来的判断中被忽略)。求总错误个数。带权并查集*/#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int maxn=2e5+10;int fa[maxn

2020-07-26 22:04:50 158

原创 数据结构:后缀数组模板

/*Str :需要处理的字符串(长度为Len) Suffix[i] :Str下标为i ~ Len的连续子串(即后缀) Rank[i] : Suffix[i]在所有后缀中的排名 SA[i] : 满足Suffix[SA[1]] < Suffix[SA[2]] …… < Suffix[SA[Len]],即排名为i的后缀为Suffix[SA[i]] (与Rank是互逆运算) 最长公共前缀(Longest Common Prefix,LCP)Heigth[i] : 表示Suffix[SA[i

2020-07-26 22:04:41 88

原创 计算几何:矩形面积并

//两多边形面积交,并模板//输入n,n个点逆时针输入//输入m,m个点逆时针输入#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using namespace std;const int maxn = 300;const double eps = 1e-8;const double pi = a

2020-07-26 22:04:32 201

原创 数据结构:线段树——区间最长连续子序列

/*线段树维护区间最长连续子序列 */#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn=5e4+10;struct node{ int l,r,sum;//从左边开始往右的最长连续子序列长度,从右边开始往左的最长连续子序列长度,整段区间之和 }t[maxn<<2

2020-07-26 22:04:23 323

原创 数据结构:线段树——扫描线模板

/*矩形面积*/#include <bits/stdc++.h>using namespace std;#define mid ((l+r)>>1)#define ls (rt<<1)#define rs (rt<<1|1)const int N=1e5+5;typedef long long ll;struct _line{ int xl,xr,h,f; _line(int a=0,int b=0,int c=0,int

2020-07-26 22:04:14 91

原创 数据结构:线段树——求区间N次方和

/*将某区间每一个数乘上 x将某区间每一个数加上 x求出某区间每一个数的和假设区间一次方和为Sum1现在要求区间二次方和和三次方...n次方和设区间一次方和Sum1 = a+b+c+d+...则区间二次方和为Sum2 = a^2+b^2+c^2+d^2+...区间每个值增加x后:Sum2=(a+x)^2+(b+x)^2+(c+x)^2+... = (a^2+b^2+c^2+...) + (2*(a+b+c...)*x) + 2*n*(x)^2 =Sum2 + 2*S

2020-07-26 22:04:04 560

原创 数据结构:树状数组模板

int lowbit(int x){ return x & -x;}void update(int x,int v){ while(x<=n){ c[x]+=v; x+=lowbit(x); }}int query(int x){ int ret=0; while(x){ ret+=c[x]; x-=lowbit(x); } return ret;}

2020-07-26 22:03:55 69

原创 数据结构:二维树状数组

/*二维树状数组+差分容斥 */#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn=1e3+10;int c[maxn][maxn];//二维树状数组 int T,n,m;int lowbit(int x){ return x&-x;}void update(

2020-07-26 22:03:47 111

原创 数据结构:ST表(可维护区间RMQ)

#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<string>using namespace std;const int maxn=1e5+10;int a[maxn][30],logg[maxn],bin[maxn];int i,j,k,m,n,o,p,js,jl,x,y,t,lg;inline int read(){ int

2020-07-26 22:03:30 108

原创 数论:gcd与exgcd

ll gcd(ll a,ll b){return !b?a:gcd(b,a%b);}void exgcd(ll a,ll b,ll &x,ll &y){ if(!b){x=1;y=0;} else{ exgcd(b,a%b,x,y); ll temp = x; x=y; y=temp-(a/b)*y; }}

2020-07-26 22:03:20 82

原创 数论:卢卡斯定理

/*C(n,m) % p = n!/(m! * (n-m)!) % p = n! % p * inv[m!] % p * inv[(n-m)!] % p求出1-n的前缀积pre[1]--pre[n] 和 1-n的逆元的前缀积 pre_inv[1]--pre_inv[n]则 C(n,m) = pre[n] % p * pre_inv[m] % p * pre_inv[n-m] % p卢卡斯定理:Lucas(n,0) = 1Lucas(n,m) % p = Lucas(n/p,m/p) * C(

2020-07-26 22:03:12 228

原创 数论:欧拉筛和莫比乌斯、欧拉函数

int prim[Maxn],cnt,mu[Maxn],phi[Maxn];bool vis[Maxn];void Get(int n){ mu[1] = phi[1] = 1; for(int i=2;i<=n;i++) { if( !vis[i] ) prim[++cnt] = i,mu[i] = -1,phi[i] = i-1; for(int j=1;j<=cnt&&i*prim[j]<=n;j++)

2020-07-26 22:03:02 86

原创 数论:求逆元的三种模板

typedef long long llint n;int mode;ll inv[maxn];void init(int mode){//线性求逆元 inv[0]=inv[1]=1; for (int i=2;i<maxn;i++){ inv[i] = ((mode-mode/i)*inv[mode % i]) % mode; }}ll mypow(ll a,ll b){//快速幂 ll ret=1; while(b){

2020-07-26 22:02:52 443 2

原创 数论:中国剩余定理(CRT)

#include <bits/stdc++.h>using namespace std;const int maxn=1e5+10;typedef long long ll;int n;ll a[maxn],b[maxn],c[maxn];ll Mul = 1;ll exgcd(ll a,ll b,ll &x,ll &y){ if(!b){x=1;y=0;return a;} ll g = exgcd(b,a%b,x,y); ll tx=x

2020-07-26 22:02:41 252 1

原创 第五章 百度Apollo规划技术介绍(1)

1. basic motion planning and overview运动规划(motion planning):搜索问题:机器学习中是一个寻找mapping(映射)的过程Path Finding Problems1.深度优先搜索2.广度优先搜索3.启发式搜索:A*Partially Observed硬件系统1.动态信息:从感知模块获得的信息和从定位模块获得的信息2.静态信息:高精地图...

2020-07-26 22:00:51 316

原创 第四章:百度Apollo高精地图(3)

Apollo地图采集方案1.地图采集硬件方案激光雷达(64线、16线)、carema,GPS、IMU、长短焦一键式采集方案将采集的信息全部放在一个bag中(包括点云、车辆的标定参数、定位结果、pose结果)Apollo地图生产技术数据分为:1.点云:将点云压成图像放在高精地图上2.图像:比如根据图像可以做车道线的识别、路牌标识可以使用自动化学习:点云分割,从点云提取特征——坐标非常准人工生产验证地图成果1.定位地图2.高精地图3.路径规划地图

2020-07-25 20:18:00 553

原创 第四章:百度Apollo高精地图(2)

业界的高精地图产品11.HEREHERE HD Live Map众包提取信息,与之前采集的Base Map做匹配1.完整性的表述2.更新的实时性:将采集的数据送到云端,在云端对数据进行一些综合性的处理,包括对激光雷达的处理,对图像的处理融合,把地图的元素给提取出来,然后整合到地图中去。之后通过云端把更新之后的地图下放到车端HERE的地图采集The self_healing Map processMap-Learning地图分层1.Road和Lane的Model层2

2020-07-24 20:15:33 419 1

原创 数论:矩阵加速、矩阵快速幂

#include <bits/stdc++.h>using namespace std;#define ll long longconst int mode=1e9+7;int n;ll k;struct Matrix{ ll a[110][110];//一定要用long long存 Matrix(){memset(a,0,sizeof(a));} Matrix operator * (const Matrix & b) const { Matrix ret;

2020-07-24 14:08:30 101

原创 数论:Zeller公式

//Zeller公式/*输入一个日期,计算这天是星期几*/#include <bits/stdc++.h>using namespace std;int getId(int y, int m, int d) { if (m < 3) {y --; m += 12;} return 365 * y + y / 4 - y / 100 + y / 400 + (153 * (m - 3) + 2) / 5 + d - 307;}vector<int> date

2020-07-24 14:08:20 243

原创 图论:二分图最大匹配(匈牙利算法)

int n,m;//V1中的点数,V2中的点数bool used[MAXN];int line[MAXN][MAXN];//line != 0 表示存在这条边int girl[MAXN];bool find(int x){//递归过程 for (int j=1;j<=m;j++){ if(line[x][j] && !used[j]){ used[j]=1; if(girl[j]==0 || find(g

2020-07-24 14:08:01 99

原创 图论:二分图最大匹配(网络流最大流算法)

/*二分图最大匹配,网络流最大流 左边为n个点,编号从 1---n右边为m个点 编号从 n+1---n+m建立超级源点0和超级汇点n+m+1 */#include <bits/stdc++.h>using namespace std;const int maxn=510;const int maxm=5e4+10;const int inf=0x3f3f3f3f;int head[maxn<<1],cnt=0;int dis[maxn<<1];s

2020-07-24 14:07:52 534

原创 图论:一般图最大匹配(带花树)

/*2020-7-14hdu-3551,子图点度数为任意一般图匹配_Edmond's Algorithm建图:将每个点根据f[i]拆成f[i]个点。将每一条边拆成两个点,将这条边关联的两个点的拆点分别与边的拆点相连,还有边的拆点也要相连:如 1-2 这条边,假设f[1]=1,f[2]=2,则我们将1号点拆成点1,2号点拆成点2和点3,1-2这条边拆成两个点4和点5,将点1与点4相连,点2和点3都与点5相连,点4与点5相连建图完成后,对这个图跑带花树找到匹配,如果这个匹配是完美匹配,

2020-07-24 14:07:41 276

原创 图论:网络流最大流EK算法

/*时间复杂度:O(N*M*M)*/#include <bits/stdc++.h>using namespace std;typedef long long ll;const int inf=0x3f3f3f3f;const int maxn=210;const int maxm=5e3+10;int n,m,s,t;ll maxflow = 0,dis[maxn];struct edge{ int v,next; ll c;}e[maxm<&

2020-07-24 14:07:20 111

原创 图论:网络流最大流dinic算法

/*时间复杂度:O(N*N*M)*/#include <bits/stdc++.h>using namespace std;const int maxn=210;const int maxm=5e3+10;typedef long long ll;const int inf=0x3f3f3f3f;int head[maxn],cnt=0;struct edge{ int v,next; int c;}e[maxm<<2];int n,m,s,t;int

2020-07-24 14:07:11 69

原创 图论:网络流最小费用最大流

/*最大流最小费用费用为单位流量的费用在最大流的前提下找最短路径即为最小费用边权为当前边的流量乘以单位流量的费用首先构建一个图用最短路算法来找到源点到各个点的最短距离找到这个数据之后,我们就可以沿着最短路来进行增广,即在最短路中求到一条可行路然后修改其残量,我们可以保证其为最大流中的一部分的最小花费不断的进行增广直到我们找到了全部值,然后得解,这就是将dinic和spfa结合起来的求解最小费用最大流问题的方法spfa使用small label first 优化,用deque实现 *

2020-07-24 14:06:58 414

原创 图论:树链剖分模板

/*树链剖分——重链剖分可以求LCA用线段树可以在树上维护区间最值、求区间和、求子树和等*/#include <bits/stdc++.h>using namespace std;const int maxn=1e5+10;struct node{ int v,next;}e[maxn<<1];int head[maxn],cnt=0,ct=0;int size[maxn];//子树的节点大小int son[maxn];//重儿子int top[m

2020-07-23 17:07:45 135

原创 图论:求树的重心

/*树的重心也叫树的质心。对于一棵树n个节点的无根树,找到一个点,使得把树变成以该点为根的有根树时,最大子树的结点数最小。换句话说,删除这个点后最大连通块(一定是树)的结点数最小。性质:1.树中所有点到某个点的距离和中,到重心的距离和是最小的(实际应用中经常用到此性质)。2.把两棵树通过一条边相连,新的树的重心在原来两棵树重心的连线上。3.一棵树添加或者删除一个节点,树的重心最多只移动一条边的位置。4.一棵树最多有两个重心,且相邻。求树的重心运用动态规划的思想,也就是树上跑DP。*/

2020-07-23 17:03:56 320

原创 图论:求树的直径

/*两次dfs第一次定一个根找离他最远的点然后以该点为根再找离他最远的点参考:https://www.cnblogs.com/handsome-zyc/p/11237529.html*/#include <bits/stdc++.h>using namespace std;const int maxn=1e5;const int inf=0x3f3f3f3f;int n;struct edge{ int v,w; edge (int a=0,int b=0)

2020-07-23 17:00:52 103

转载 头文件优化

#pragma GCC diagnostic error "-std=c++11"#pragma GCC target("avx")#pragma GCC optimize(2)#pragma GCC optimize(3,"Ofast","inline")#pragma GCC optimize("Ofast")#pragma GCC optimize("inline")#pragma GCC optimize("-fgcse")#pragma GCC optimize("-fgcse-lm

2020-07-23 16:57:50 308 1

原创 快读和快写(可以使用__int128)

int read(){ int x=0,f=1;char ch=getchar(); while (ch<'0' || ch>'9'){if (ch=='-') f=-1;ch=getchar();} while (ch>='0' && ch<='9'){x=x*10+ch-48;ch=getchar();} return x*f;}void print(__int128_t x){ if(x>9) print(x/10); putchar(x

2020-07-23 16:57:10 199

原创 第四章:百度Apollo高精地图(1)

1.高精地图与自动驾驶的关系在L3和L4等级上,高精地图是标配高精地图的定义要求高精地图有满足自动驾驶的精度,有较强的实时性。高精地图与其他模块的关系1.高精地图与定位模块的关系主流的定位方案:1.基于点云2.基于camera使用粒子滤波,对特征收集,然后变化位置收集下一个特征,通过几次迭代后求出位置。2.高精地图与感知模块的关系RaDAR,LiDAR,carema3.高精地图与规划、预测、决策模块长距离规划和短距离规划4.高精地图与安全模块安全模块的四

2020-07-23 16:53:34 2428

原创 数据结构:二维单调队列

模板:二维单调队列维护二维区间最大值、最小值/*二维单调队列可以维护区间的最大值,最小值*/#include <bits/stdc++.h>using namespace std;typedef long long int LL;const int MAXN = 1000 + 10;const int INF = 0x3f3f3f3f;int n, m, k, num[MAXN][MAXN], minNum[MAXN][MAXN], maxNum[MAXN][MAXN];v

2020-07-23 11:36:15 526

原创 学习笔记3:定位

定位:确定你在高精度地图中的位置GPS的精度在1-3m之间将汽车所见到的内容与地图上所显示的内容进行比较。为了进行该比较,必须能够在他自身坐标系和地图坐标系之间转换数据,系统必须在地图上以十厘米的精度确定车辆的精确位置。几种常见的无人驾驶定位方法:GNSS RTK,惯性导航,LiDAR定位和视觉定位GNSS-RTK全球导航卫星系统GPS是使用最广泛的GNSSGPS分为三部分:1.卫星2.世界各地的控制站。控制站用来监视和控制卫星,保证正常运行和验证GPS广播信号的精确度3.GPS接

2020-07-23 11:06:17 175

原创 学习笔记2:高精度地图

一、地图的用途:1.定位2.预先规划,提前通过地图确定车辆行驶的路径通过地图判断周围的环境、各种事物,机器人相比人脑而言可以进行大量的记忆,这是其优势所在二、高精度地图高精度地图包含大量的驾驶辅助信息,最重要的是道路网的精确三维表征,同时高精度地图包含很多的语义信息,指示交通情况等等特征:精度。手机上的地图达到米级精度,而高精度地图达到厘米级精度三、地图与定位、感知与规划的关系定位:车辆寻找坐标,从各类传感器收集数据。例如摄像机图像数据、激光雷达收集的三维点云数据。车辆将其收集

2020-07-23 11:05:54 1183

原创 学习笔记1:无人驾驶汽车的运作方式

five core components of the self-driving car1.计算机视觉2.传感器融合3.定位4.路线规划5.控制计算机视觉和传感器融合:这两大核心是为了确定车辆运行时周围的环境,比如说当前路况怎样,自己周围汽车数量和与之对应的距离等等。定位:希望通过高精度的地图和运用一些数学算法使之能在厘米甚至更小的精度范围内确定车辆在地图上的位置。路径规划:确定了自身在地图上所处的位置以及当前周围的环境之后,我们需要确定规划合适的路径使得汽车能够顺利到达目的地,在路径规划

2020-07-23 11:05:39 461

转载 图论学习:二分图匹配

1.二分图中的相关概念:1.二分图定理:无向图G为二分图的充分必要条件是,G至少有两个顶点,且其所有回路的长度均为偶数。2.匹配的概念:

2020-07-23 11:04:26 520

原创 第三章:百度apollo定位技术

课时1:技术入门:1.什么是无人车自定位系统:自动驾驶汽车定位系统指标要求:1.精度2.鲁棒性3.场景2.为什么无人车需要精确的定位系统?1.与自动驾驶地图配合提供静态环境感知2.速度、加速度、角速度等信息用于路线规划及车辆控制3.航迹推算:IMU:惯性测量单元:包含了加速度计和陀螺仪3.卫星实时的动态差分技术(GNSS)距离差分:伪距差分和载波相位差分4.激光定位1.预先制作一个地图,比如点云图,概率地图等2.然后拿实时点云与地图做匹配,例如可以使用搜索

2020-07-22 20:40:15 2206 1

操作系统实验四:磁盘调度算法.rar

此程序模拟磁盘调度算法电梯算法和最短寻道时间优先SSTF算法,电梯算法具体实现原理看图片和程序开头的介绍。采用C++语言开发,运用链表,指针实现访问。

2020-06-09

操作系统实验三:页面置换算法.rar

实验了页面置换算法FIFO,LRU和OPT,驻留集大小和访问串大小可以自己设定,其中驻留集中的页置换采用栈模拟的方法,具体实现看程序内部。开发工具C++

2020-06-09

操作系统实验二:内存分配模拟.rar

对作业装入内存的过程进行了模拟,主要是对装入的作业分页,在位示图中看是否有足够的位置可以装入,帧号=位示图相应位置的字号*字长+位号,并给作业分配一个页表。开发工具:C++

2020-06-09

操作系统实验一:进程调度算法.rar

模拟进程调度算法,每一个进程由一个进程控制块(PCB)标志,实现了HPF,RR,SPF三种调度算法,可自行加入完善阻塞状态,开发工具:C++。

2020-06-09

空空如也

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

TA关注的人

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