自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构——线段树

线段树 一.概念 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。 使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logN)。而未优化的空间复杂度为2N,实际应用时一般还要开4N的数组以免越界,因此有时需要离散化让空间压缩。(来自百度) 二.代码分段解析 代码中涉及许多左移和右移操作,“>>1”=...

2020-02-17 17:49:55 210

原创 数据结构——扫描线

扫描线算法基础 扫描线刚刚学完,自己总结总结巩固一下,如果有不足或不对的地方,请大佬们及时指出。 1. 知识点 首先,学习扫描线,我们要有一定线段树和离散化的知识 2. 作用 它可以帮助我们解决一些重叠矩形的面积和周长的问题 3. 具体思路 我的做题思路一般是先根据样例画出图形和树的结构,以便观察更新规律,找到“pushup”子函数的写法 下面,讲一下扫描线的具体实现方法: 如图,我们从下往上便...

2020-02-17 17:25:40 474

原创 最长回文子串——马拉车

最长回文子串 此博客不会讲太多原理的东西,主要是平时复习巩固的时候用一下 如果是初学者,可见大佬链接: https://www.cnblogs.com/love-yh/p/7072161.html. p[]数组的求取 p[]用来存res字符串的回文半径,p[i]存res[i]为中心的回文串的半径,通过简单推理可得,p[i]-1就是以s[i]为中心的回文串的长度 1.i<=ri j是i关于mi...

2019-12-01 14:18:01 212 1

原创 带权并查集

带权并查集 为什么要用带权并查集 普通并查集只能解决集合间的关系,判断元素属不属于一个集合和一共有多少个集合 带权并查集可以判断集合内部元素之间的关系,甚至是元素之间的权值 题目 1.食物链 题目链接:http://poj.org/problem?id=1182. 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。每个动物都...

2019-11-24 10:55:01 197

原创 素数筛法

素数筛法 1.埃式筛 #include <iostream> #include<stdio.h> #include<algorithm> #define me(a,b) memset(a,b,sizeof(a)) const int maxn=1e6+10; using namespace std; int a[maxn],b[maxn]; int main()...

2019-07-30 09:23:58 167

原创 动态规划(一)——最大连续子序列的和

最大连续子序列的和 模板题链接Max Sum . 模板代码: #include <iostream> #include<stdio.h> #include<math.h> #include<algorithm> #define me(a,b) memset(a,b,sizeof(a)) const int maxn=5e5+10; using nam...

2019-07-29 10:58:58 287

原创 确定比赛名次——(拓扑排序)

拓扑排序 一.大致思路 1.将入度为0的点压入队列,将V0压入队列 2.取出队首元素V0,将V1,V3,V4的入度减1; 3.再次判断入度为0的点,将V1压入队列 4.取出队首元素V1,V3的入度减1; 5.再次判断入度为0的点,将V3压入队列; 6.取出队首元素V3,V4和V2的入度减1; 7.再次判断入度为0的点,将V4和V2压入队列 8.取出队首元素V4或V2(具体先取出那个根据题目要求判...

2019-07-20 19:48:02 413

原创 图(一)——最短路(Floyd)

最短路(Floyd) 可解决全员最短路问题,即可求出任意一点到另一点的最短路径,但因为主要代码有三层循环,只能在数据较小的时候使用 #include <iostream> #include<stdio.h> #include<math.h> #include<string.h> #include<algorithm> #include&l...

2019-07-20 10:59:18 200

原创 图(一)——最短路(SPFA)

最短路(SPFA) SPFA算法是Bellman-Ford算法优化得来的,可用来判断是否存在从源点可达的负环(Dijkstra无法做到) #include <iostream> #include<stdio.h> #include<math.h> #include<string.h> #include<algorithm> #includ...

2019-07-20 10:39:49 163

原创 How Many Tables ——(并查集)

并查集 并查集的主要思想就是查找两个子节点的父亲节点是否是同一个,和把两个父亲节点的集合合成一个。 并查集的路径压缩:大概思想就是把一棵树上的所有子节点(和根节点直接相连的,没有和根节点直接相连的)全部都直接连在根节点上。并查集算法主要就是查找父亲节点,所以有些路径本来就没有什么必要,压缩掉也没关系 #include <iostream> #include<stdio.h>...

2019-07-19 09:40:41 178

原创 STL常用

STL常用 一.vector 1. 应用 用于普通数组会超内存的情况 以邻接矩阵的方式存储图 2. 定义:typename可以是int,double,char,结构体 3. 元素访问 下标访问 迭代器访问:vector< typename >::iterator it; 4. 函数 #include<vector> using namespace std; vector&l...

2019-07-18 20:30:37 1286

原创 图(一)——最短路(Dijkstra)

最短路 常用的最短路算法有Dijkstra,SPFA,Floyd,可根据题目不同选择不同算法 一.Dijkstra算法 可用来解决单源最短路问题,即起始点是固定的,只能算一固定点到其他所有点的最短路问题 大致思路: 1.设定以V0为起点,将V0到其他所有点距离设置为INF(无穷大) 2.为访问的点{V0,V1,V2,V3,V4,V5},在这些点中,距 ...

2019-07-17 20:45:07 695

原创 快速幂

快速幂(取模) 快速幂 矩阵快速幂 首先我们说一下取模规则: (ab)%c=((a%c)(b%c))%c (a±b)%c=((a%c)±(b%c))%c 注:千万千万不要漏掉了最外面的取余,漏掉就错了!!! 快速幂 对于an来说;如果n较小,我们可以直接计算,时间复杂度为O(n),而如果n过大,可能在某些题中就会有超时的风险,所以我们有了快速幂来帮我们优化时间。 大致思路为: 1.将n转...

2019-07-11 16:43:28 154

原创 青蛙的约会 扩展GCD

青蛙的约会 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为了帮助这两只...

2019-07-10 20:40:12 218

原创 Relatives 互质数个数

Relatives Given n, a positive integer, how many positive integers less than n are relatively prime to n? Two integers a and b are relatively prime if there are no integers x > 1, y > 0, z > 0...

2019-07-09 19:59:20 641

空空如也

空空如也

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

TA关注的人

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