自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 BFS宽度优先搜索——以acwing例844为例

BFS模板:queue 初始while queue 确定{ t 对头 拓展 t}844. 走迷宫给定一个n*m的二维整数数组,用来表示一个迷宫,数组中只包含0或1,其中0表示可以走的路,1表示不可通过的墙壁。最初,有一个人位于左上角(1, 1)处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。请问,该人从左上角移动至右下角(n, m)处,至少需要移动多少次。数据保证(1, 1)处和(n, m)处的数字为0,且...

2020-09-24 14:58:18 135

原创 差分

差分一维差分a1,a2,...an构造:b1,b2...bn使得:ai=b1+b2+..bia成为b的前缀和,b成为a的差分一维差分(功能:选定一段数字,将其全部加上c)如图将bi+c,bj+1-c,这样a【i,j】区域内的a值都会加上c#include <iostream>using namespace std;const int N = 100010;int n, m;int a[N], b[N];void insert(int ..

2020-09-13 17:28:13 168

原创 前缀和

前缀和一维前缀和就是求si=a1+a2+a3+...+ai功能:能快速求出数组中一段数字之和求【l,r】这一段的和=s[l]-s[r-1]模板:#include<iostream>using namespace std;const int N=100010;int n,m;int a[N],s[N];int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++)//输入..

2020-09-13 17:13:32 177

原创 DFS(深度优先搜索)——以842排列数字为例

DFS与BFS的区别相同点:都是树结构进行搜索不同点:DFS:从开头一直向叶节点搜,然后回溯 BFS:一层一层搜索

2020-09-13 11:02:16 136

原创 堆——以洛谷p3378,p1334,p1628,p1878为例

堆堆的五个基本操作:1.在集合中插入一个数 heap[++size]=x ; up[size]2.求集合当中的最小值 heap[1]3.删除最小值 heap[1]=heap[size] ; size-- ; down(1)4.删除任意一元素 heap[k]=heap[size] ; size-- ; down(k) ; up(k)5.修改任一元素 ...

2020-08-21 08:28:51 496

原创 快速排序和归并排序的比较

快速排序和归并排序的比较#include<iostream> #incude<iostream>using namespace std; using namespace std;const int N=1000010; const int N=1000010;int n; ...

2020-07-17 21:51:00 351

原创 高精度(C++)——791、792、793、794

例题791题目:给定两个正整数,计算它们的和。输入格式共两行,每行包含一个整数。输出格式共一行,包含所求的和。答案#include <iostream>using namespace std;const int N = 100010;int A[N], B[N], C[N];int Add(int a[], int b[], int c[], int cnt) { int t = 0;//t表示进位 for (int i=1; i<

2020-07-10 21:17:42 291

原创 二分(C++)——789、790

二、二分2.1整数二分(789、790) true [mid,r] l=mid1. mid=(1+l+r)/2 false [l,mid-1] r=mid-1 true [l,mid] r=mid2. mid=(l+lir)/2 ...

2020-07-10 21:10:00 2087

原创 归并排序(C语言)——例题787、788

一、归并排序1确定分界点2递归排序模板:#include<stdio.h>#define N 1000010int n;int q[N],tmp[N];void merge_sort(int q[],int l,int r){ if(l >= r) return; //确定整个区间有数字,若无数字直接return int mid=l + r >> 1; //确定分界点mid merge_sor

2020-07-07 20:36:06 555

原创 快速排序(C语言)——例题785、786

一、快速排序(例题 785、786)1确定分界点2调整区间3递归处理左右两段模板:#include<stdio.h>#include<stdlib.h>#define N 100010int n;int q[N];void quick_sort(int q[],int l,int r){ if(l>=r) return; int x=q[(l+r)>>1],i=l-1,j=r+1; //1选择分界点x=q[(l+

2020-07-07 20:05:48 1864

空空如也

空空如也

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

TA关注的人

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