自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 树的直径

定义: 对于一棵树,找到树上的两个节点并且他们的路径最长,该最长路径即为该树的直径 求法: 1、使用bfs或dfs:先取树中的一个点进行dfs/bfs,找到离该点最远的点p,点p一定是树直径的一个端点 以该点在进行一次dfs/bfs,找到一个离p点最远的点q,则pq为该树的直径,且pq的距离为直径大小 2、树形dp(待补全) 代码: dfs void dfs(int ...

2019-08-06 21:36:00 111

转载 2019牛客暑期多校训练营(第四场合集)

C-sequence 题意: 题目给出长度为n的两个数组a,b,求出 分析: 标准题解: 代码: (线段树+单调栈) #include<iostream> #include<stack> #include<cstring> #include<queue> #include<algorithm&g...

2019-08-05 21:00:00 208

转载 2019牛客暑期多校训练营(第二场合集)

H-Second Large Rectangle 题意: 输入一个n*m的矩阵,矩阵由字符0和1组成,需要你找到第二大的全为1的矩阵的大小 分析: 将n*m的矩阵转化为n个以i为底的直方图,利用单调栈分别对每个直方图进行求解,找出次大值 前置知识:单调栈、相似习题:POJ 2559 POJ3494(题解) 代码: #include<iostream> ...

2019-07-30 20:23:00 119

转载 POJ - 2559 && POJ - 3494 (单调栈)

题目传送门:POJ - 2559Largest Rectangle in a Histogram   POJ - 3494 Largest Submatrix of All 1’s POJ-2259 题目大意: 给出一个柱状统计图,该统计图由多个宽度为1高度不一的矩形构成,问图中包含最大的矩形面积是多少 分析: 每个矩形都有不一样的高...

2019-07-30 20:20:00 114

转载 POJ - 2796 Feel Good (单调栈)

题目传送门:POJ - 2796 Feel Good 题目大意: 给你一组个数组,需要你找到一段子区间的和乘上该区间的最小值是最大值。输出结果和区间 分析: 首先区间上的和可以使用前缀和,这样可以O(1)找到每个区间的和。现在需要考虑的便是每个区间 对应的最小值,如果暴力则存在n2个区间,每个区间在找到最小值一定一定会超时。可以想到数组 区间的最小值无非是数组原来的数,对于...

2019-07-30 18:04:00 187

转载 2019牛客暑期多校训练营(第一场合集)

J-Fraction Comparision 题目大意: 签到题,比较x/a 和 y/b 的大小,其中x,a,y,b的数据范围为 0≤x,y≤1018 1≤a,b≤109 分析: 1、可以看为带分数的形式,先比较整数部分的大小,之后再比较分数部分的大小 2、java大数类直接比较 #include<iostream> using namespace ...

2019-07-23 00:10:00 515

转载 B-Icebound and Sequence(等比数列求和取模)

题目传送门:B-Icebound and Sequence(19年河北省赛) 题目大意: 等比数列求和,结果取模 分析: 因为取模操作,直接运用等比数列求和公式无法做出,所以需要用到公式 求等比为k的等比数列之和S[n]..当n为偶数..S[n] = S[n/2] + pow(k,n/2) * S[n/2] n为奇数...S[n]...

2019-05-26 14:36:00 372

转载 POJ - 2763 Housewife Wind (树链剖分-边权和)

题目传送门:POJ - 2763 Housewife Wind 题目大意: 存在一个树形图,一个人一开始在s点,树上每条边都有时间花费,现在存在两种操作 1、 0 u :查询这个人从他当前的点到点u的时间花费 2、 1 i w :将第i条路径的时间花费更改为w 分析: 树链剖分,维护边权,用每条边深度较大的节点记录该边的边权,将边权改为点权,之后 即可用线段树单点...

2019-05-07 21:41:00 155

转载 HDU - 3966 Aragorn's Story(树链剖分)

题目传送门:HDU - 3966 Aragorn's Story 题目大意: 存在一个树,树上每个节点为一个阵营,阵营中存在敌人,现在要进行以下操作 I C1 C2 K :将阵营C1到阵营C2路径经过的每个阵营的人数+k D C1 C2 K :将阵营C1到阵营C2路径经过的每个阵营的人数-k Q C:查询阵营C中的人数。 分析: 点权树链剖分,线段树维护区间...

2019-05-07 21:09:00 101

转载 [SPOJ - QTREE] Query on a tree(树链剖分 - 边权最大值)

题目传送门:[SPOJ - QTREE] Query on a tree 题目大意: 存在一个树,树上有n个节点和n-1条边,对这棵树进行以下两种操作 CHANGE i ti :将树的第i条边的权值改为ti QUERY a b :查询a->b路径中权值最大的边的值 分析: 边权树链剖分裸题,CHANGE操作是更改第i条边,因此边用结构体数组将其保存,用边 ...

2019-05-07 19:49:00 175

转载 1036: [ZJOI2008]树的统计Count(树链剖分 - 点权最大值&和)

题目传送门:[ZJOI2008]树的统计Count 题目大意: 一棵树上有n个节点,每个节点都有一个权值w。进行以下的一些操作 I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问从点u到点v的路径上的节点的权值和 分析: 树链剖分入门题,线段树维护点权最大值mmax和...

2019-05-04 22:28:00 177

转载 CodeForces-1152C Neko does Maths(GCD)

题目传送门:CodeForces-1152CNeko does Maths 题目大意: 给你两个值a,b,让你求出使lcm(a+k,b+k),最小的k值 gcd性质: gcd性质:gcd(a,a) = gcd(a,a)     gcd(a,b) = gcd(a,a-b)(a>b)      gcd(a,b) = gcd(b,a-b)(a>b)证明:设gcd(a...

2019-04-27 11:51:00 95

转载 CodeForces-1155D Beautiful Array

题目传送门:CodeForces-1155D Beautiful Array 题目大意: 数组的美值是此数组的某个连续子数组的最大总和(此子数组可能为空),现在存在一个有n个数的 数组,同时拥有一个数x,你能够选择该数组的某个子段乘于x,求出该数组美值得最大值。 分析: 定义三个dp数组:dp1[]、dp2[]、dp3[] 其中 dp1[i] 表示以a[i]结尾的最大子段和...

2019-04-23 21:09:00 137

转载 CSU - 1356 Catch (判奇环)

题目传送门:CSU - 1356 Catch 题目大意: 存在一个n个点m条边的无向图,给定一个出发点,每个时间点能够走到相邻的下个点。能够走重复的边, 问是否存在某一个时间点,他可能停留再任意的n个点之间。 分析: 首先图是联通的,不连通则无法到达一部分点,可以发现如果该图是一条链的话,到达的点分两种情况 (奇数时间到达和偶数时间到达)因此无法满足条件。当图是一个偶数环时...

2019-04-20 01:08:00 188

转载 Kattis - hoppers Hoppers(判奇环)

题目传送门:Kattis - hoppers Hoppers 题目大意: 你是一个黑客,现在你发明了一种感染病毒,这种感染病毒能够感染到与该主机相隔一个点的主机。 存在一个无向图,每个点代表一台主机,每条无向边表示两台主机相连,现在你有个计划是通过感 染一个电脑让所有电脑感染,你可以为两条电脑之间加边,需要你求出最少加多少条边能够完成计划 分析: 我们能够发现奇数环中任何一...

2019-04-20 00:11:00 462

转载 HDU - 4027 Can you answer these queries? (线段树)

题目传送门:HDU - 4027 Can you answer these queries? 题目大意: 存在n艘敌军战舰,每艘战舰都有能量值,我军存在一种秘密武器,每次能够将在该区间内的所 有战舰的能量值开方,现在指挥官想要知道武器的效果,需要你告诉他该区间内敌军战舰的能 量值之和 分析: 该题对区间进行操作,显然是用线段树。两个操作分别是对区间进行开方和区间求和,对区间...

2019-04-16 00:13:00 98

转载 回溯法理解

回溯法 基本思想: 构建问题的解空间树,在其解空间树中,从根节点出发,进行深度优先搜索。在搜索过程中,对解空间 树的每个结点进行判断,判断该结点是否包含问题的解,若肯定不包含,则跳过对以该结点为根的子树的 搜索,逐层向其祖先结点回溯。否则,则进入该子树,继续按深度优先策略搜索。 步骤: 1、针对所给问题,定义其解空间 2、确定易于搜索的解空间结构 3、深度优先搜索其解空间...

2018-12-18 00:56:00 253

转载 算法第5章上机实践报告

一、实践题目 7-2工作分配问题 题目描述:现在要将n份工作分配给n个人,其中每个人完成不同工作需要不同的花费,现在输入一个n表示n个人和n份工作,接着输入n行,每行n个数表示该人完成第i个工作所需要的花费。现在需要你求出为每一个人分配一件不同的工作,并使花费的最小值。 样例1: //输入 3 10 2 3 2 3 4 3 4 5 //输出 9 题目分析:...

2018-12-17 20:52:00 105

转载 贪心算法理解

贪心算法 基本思想: 贪心算法通过一系列的选择来得到问题的解,其中每一个选择都是当前状态下局部最好的选择,即贪心选择 它有两个重要性质:贪心选择性质和最优子结构性质。 贪心选择性质:指问题的最优解可以通过一系列局部最优解的选择得到。贪心算法做贪心选择可 以依赖于以往所做过的选择,但决不依赖于将来所作的选择,也不依赖于子问题的解。 最优子结构性质:指问题的最优解包含其子问题的最...

2018-11-28 12:05:00 183

转载 算法第四章上机实践报告

一、实践题目 7-1最优合并问题 题目描述:存在k个排好的序列,要用二路合并算法将其合并成一个序列。将长度 为m和长度为n的序列合并需要比较m+n-1次,现在要求进行合并操作时,所需要的 总比较次数最多和最少的次数。输入k,接下来的k个数为k个序列的长度 样例1: //输入 4 5 12 11 2 //输出 78 52 题目分析: 容易分析得出,如果每...

2018-11-28 10:35:00 110

转载 LCA RMQ+ST表学习笔记

RMQ RMQ问题:在给定的一个长度位N的区间中,有M个询问,每次询问给出区间[L,R],求出区间段元素的 最大值/最小值。对于RMQ问题很容易想到遍历的做法,将区间[L,R]中的元素遍历一遍,即可寻找到 最大/最小值,但当区间长度较大,询问次数较多,就会耗费大量的时间。RMQ问题可以用线段树和ST 表两种做法,下面介绍ST表。 ST表法: ST表是用来解决RMQ问题非常高效...

2018-11-16 21:46:00 141

转载 算法第三章上机实践报告

一、实践题目 7-3编辑距离问题 题目描述:用最少的操作将字符串A转化成字符串B,其中操作包括三种。 (1)删除一个字符; (2)插入一个字符; (3)将一个字符改为另一个字符。 样例1: //输入 fxpimu xwrs //输出 5 题目分析: 此题用动态规划的做法,首先需要定义F(i,j),表示长度为i的字符串A 转化为长度为j的字符串B的...

2018-11-10 16:52:00 115

转载 动态规划理解

动态规划 基本思想 动态规划算法与分治法类似,其基本思想也是将待求解问题分解乘若干个子问题,先求子问题, 然后从这些子问题的解得到原问题的解。动态规划中分解得到的子问题往往不是相互独立的。 若用分治法,则分解的子问题数目会太多,导致时间复杂度过高。在动态规划中我们将已解决 子问题的答案保存在一个表,在需要时在找到以求的答案,这样可以避免大量的重复计算,这 便是动态规划的基本思...

2018-11-07 19:30:00 123

转载 算法第二章上机实践报告

一、实践题目 7-3两个有序序列的中位数 题目描述:存在两个长度为n得有序序列S1、S2,求出S1、S2合并后得有序序列的中位数,要求算法实间复杂度O(logn) 样例1: //输入 5 1 3 5 7 9 2 3 4 5 6 //输出 4 样例2: //输入 6 -100 -10 1 1 1 1 -50 0 2 3 4 5 //输出 1 ...

2018-10-20 14:15:00 67

转载 对二分法思想的体会以及结对编程的感想

二分法: 二分思想是解决编程问题的一个重要思想,通过分半不断缩小判定区间,来降低问题规模,最后达到降低问题复杂度的目的。 采用二分法的条件是: 1、符合单调性 2、中间值mid可判定 二分搜索 典型的二分法例子是二分搜索算法,算法将n个有序元素分成大致相同的两半,通过对中间值的判定,确定所求目标数所在区间, 在不断进行区间分半操作,缩小判定范围,直...

2018-10-15 20:44:00 229

转载 POJ-1679 The Unique MST(次小生成树)

题目传送门:POJ-1679 The Unique MST 题目大意: 题目给了一个无向图,判断该图的最小生成树是否唯一。 分析: 要求出无向图的次小生成树,若次小生成树的权值和最小生成树权值一样,则最小生成树不唯一,否则唯一。 求次小生成树:首先需要求出最小生成树,然后暴力枚举非最小生成树的边,将边加入最小生成树中, 此时会形成一个环,将环中权值最大的边删除(不是新加入的边...

2018-10-12 22:56:00 124

转载 POJ - 3417 Network (LCA+树上差分)

题目传送门:POJ - 3417 Network 题目大意: 存在一棵n个结点的树,加入m条新边,现在要让这个图不连通,你可以切断两条边,要求切断一条原边,一条新边,求切割的方案数。 分析: 加入m条新边,假设加入新边(u,v),那么u-->lca(u,v)-->v-->u形成一个环,此时可以切断新边,和环上任意的一条原边就可以使图不连通。 可以发现若加入一条...

2018-10-02 20:55:00 88

转载 HDU - 4547 CD操作 (LCA倍增)

题目传送门:HDU - 4547 CD操作 题目大意: 略 分析: 求出目录A 到 B所需要的CD操作次数,这里的A B 位字符串 所以用到map映射,之后直接求LCA分情况讨论即可:设求A到B的CD操作数 1、A==B 需要的CD操作数是0 2、A是B的最近公共祖先,则A-->B的CD操作数是0 3、B是A的最近公共祖先,则B-->A的CD操作数是 deep...

2018-09-22 15:19:00 146

转载 HDU - 6115 Factory (LCA 倍增)

题目传送门:HDU - 6115 Factory 题目大意: (中文题,简单解答下题意) 存在N个城市和M个百度的子公司,N个城市间有N-1条道路连接(一颗树),每个子公司都有办公室,办公室分布在各个城市,现在提问,两个子公司间的最小距离。 分析: 枚举提问的两个子公司的办公室间的距离,求出最短距离即可: 例如:子公司company1办公室在城市 1 2 3 子公司...

2018-09-22 11:37:00 105

转载 C/C++ 输出控制小数点位数

C/C++输出控制小数点位数的方法 C++: 在C++中输出要控制小数点的位数需要用到头文件iomanip中的setprecision(n)和setiosflags(ios::fixed) 其中setprecision(n) 设置浮点数的有效数字为n   setiosflags(ios::fixed) 设置浮点数以固定的小数位数显示 用法如下(代码示例) #includ...

2018-09-21 17:46:00 1549

转载 POJ-2421 Constructing Roads(最小生成树)

题目传送门:(POJ-2421 Constructing Roads) 题目大意: 要修公路,输入一个n,表示n个村庄。接着输入n*n的矩阵,该图的邻接矩阵,然后输入一个q接下来的q行 每行包含两个数a,b,表示a、b这条边联通,就是已经有公路不用修了,要让所有村庄联通在一起问:修路最小代价? 分析: 根据题目输入构造邻接矩阵,然后把已经联通的村庄的距离设置为0,表示不用在修...

2018-08-17 11:08:00 92

转载 POJ - 2031 Building a Space Station(最小生成树)

题目传送门:POJ - 2031 Building a Space Station 题目大意: 给你n个球体,输入n,接下俩输入n行中每行有四个数,分别代表球的球心坐标x,y,z 和球径r 。 可以在两球之间建立通道,现在要将所有球体联通,求最小代价。 分析: 可以知道任意两个球都可以建立通道,因此我们构建一张图,里面是所有球的所有通道,然后在跑prim就可以了 通道的大小是...

2018-08-17 11:00:00 78

转载 POJ - 1251 Jungle Roads(最小生成树)

题意:有一个村庄网络(图),求该图的最小生成树 首先输入n代表n个村庄,接下来的n-1行,每行首先输入一个大写字母表示一个村庄,接着输入一个数字num, 表示和村庄连接的点的个数 接下来输入num对大写字母和数字,表示该村庄到另一个村庄的距离。比如:题目的第二组数组 3 A 2 B 10 C 40 B 1 C 20 表示:有三个村庄 A村庄有两个连通的点B ...

2018-08-16 17:31:00 73

转载 最小生成树--prim学习笔记

最小生成树 prim 问题引入:假设要在n个城市之间建立通信联络网,则连通n个城市需要n-1条路线,这是怎么样能在最节省经费的前提下建立这个通信网? 可以用联通网来表示n个城市,以及城市间的通信线路。其中顶点代表城市,边代表城市间线路,边的权值表示相应代价。n个顶点的联通网可以建立许多不同的生成树,其中要求的便是代价和最小的生成树。也称最小生成树。 构建生成树的算法多数...

2018-08-16 16:43:00 151

转载 STL--priority_queue学习笔记

priority_queue优先队列 在学习了堆优化的迪杰斯特拉时,学了优先队列,发现非常好用。QAQ之前应该早点学的,哎,自己又菜又懒,咸鱼王无疑了。学习知识点记录下来! 优先队列就是将队列中的元素赋予优先级,在访问优先队列中的元素时,具有最高优先级的元素先被访问。队列时先进先出,而优先队列是优先级最高的先出。 初始化:需要 头文件 #include<queue&...

2018-08-15 12:27:00 96

转载 最短路---Dijkstra+堆优化学习笔记

Dijkstra算法+堆优化 Dijkstra算法步骤: 把顶点V分成两组: S:已经求出最短路径的顶点集合 T=V-S:尚未确定最短路径的顶点集合 1、初始时:令S={V0} T={其余顶点} T中的顶点对应的距离值若存在<V0,Vi>,则为该边的权值,若不存在则为INF(正无穷) 2、从T中选取一个距离最小的顶点W,将该点加入集合S中。并用该点...

2018-08-15 11:41:00 122

转载 最短路---Dijkstra学习笔记

最短路---Dijkstra 最近蒟蒻的自己重新学习了一遍最短路,也算有些体会,记录下来。 首先引入问题:在一张图中,从某一顶点出发,沿图的边到达定一个顶点所经过的路径中,各边权值和最小的一条路径。 解决该问题的算法有:Dijkstra算法,Bellman-Ford算法,Floyd算法和SPFA算法 Dijkstra算法: 介绍:Dijkstra算法是单源最短路算法的一种...

2018-08-14 17:31:00 121

转载 STL--vector学习笔记

<Vector> vector<T>容器是包含T类型元素的序列容器,vector<T>容器的大小可以自动增长,从而可以包含任意数量的元素,只要元素超出vector当前的容量,就会自动分配更多的空间。 只能在vector容器尾部高效的删除或添加元素。可以方便灵活的代替数组存放元素。只要能够意识到,vector在扩展容量,以及在序列内部删除或添加元素时...

2018-05-17 13:45:00 72

转载 STL--queue学习笔记

<queue> 只能访问queue<T>容器适配器的第一个和最后一个元素。只能在容器的末尾添加新元素,只能从头部移除元素。FIFO(先进先出) 1.初始化 需要头文件<queue> queue<int>que; 2.成员函数 C++队列Queue类成员函数如下: back()返回最后一个元素 empty()如果队列空则...

2018-05-17 13:35:00 120

转载 NBUT - 1457 Sona (莫队算法+简单离散化)

题目链接:https://vjudge.net/problem/38739/origin 题目表述: Sona,Maven of the Strings. Of cause, she can play the zither.Sonacan't speak but she can make fancy music. Her music can attack, heal, en...

2018-05-16 21:44:00 122

空空如也

空空如也

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

TA关注的人

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