数据结构
文章平均质量分 92
相思明月楼
学生一枚,所言之处,如有不当,敬请指正。
展开
-
快速排序(过程图解)
假设我们现在对“612 79345 108”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列中所有比基准数大的数放在6的右边,比基准数小的数放在6的左边,类似下面这种排列。 312 5469 ...转载 2018-07-02 12:10:50 · 419163 阅读 · 194 评论 -
BFS(广搜)和DFS(深搜)算法原理(通俗易懂版)
DFS 算法思想:一直往深处走,直到找到解或者走不下去为止BFS算法DFS:使用栈保存未被检测的结点,结点按照深度优先的次序被访问并依次被压入栈中,并以相反的次序出栈进行新的检测。BFS:使用队列保存未被检测的结点。结点按照宽度优先的次序被访问和进出队列。框架:BFS#include<cstdio>#include<cstring>#include<queue&g...原创 2018-04-05 13:17:08 · 5787 阅读 · 2 评论 -
HDU 1372 & POJ 2243 Knight Moves(广度优先搜索)
Problem DescriptionA friend of you is doing research on the Traveling Knight Problem (TKP) where you are to find the shortest closed tour of knight moves that visits each square of a given set of n ...原创 2018-08-24 17:49:23 · 455 阅读 · 0 评论 -
牛客小白月赛6 H挖沟(并查集)
题目链接:https://www.nowcoder.com/acm/contest/136/H#include<bits/stdc++.h>using namespace std;const int N=5e5+5;int n,m,tot;int p[N];struct node{ int u,v,w;}a[N];bool cmp(node a,node b...原创 2018-08-19 10:02:48 · 316 阅读 · 0 评论 -
牛客小白月赛6 F发电(线段树)
题目链接:https://www.nowcoder.com/acm/contest/136/F线段树求区间的积。注意:点更新(除以一个数)的时候一定要乘以它的逆元否则一直WA。不要问我怎么知道的,,,#include <cstdio>#include <iostream>#define lson l ,mid ,t << 1#define rso...原创 2018-08-19 09:59:58 · 318 阅读 · 0 评论 -
HDU 1233 还是畅通工程(最小生成树 Prime&Kruskal)
Problem Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。 Input 测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < ...原创 2018-08-10 20:24:46 · 281 阅读 · 1 评论 -
POJ 3278 Catch That Cow
ProblemFarmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ ...原创 2018-08-01 14:55:17 · 137 阅读 · 0 评论 -
POJ 2104 K-th Number(主席树,区间第K大的数)
DescriptionYou are working for Macrohard company in data structures department. After failing your previous task about key insertion you were asked to write a new data structure that would be able t...原创 2018-07-27 16:29:14 · 343 阅读 · 0 评论 -
POJ 3468 A Simple Problem with Integers(线段树区间更新,区间查询)
DescriptionYou have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. One type of operation is to add some given number to each number in a given interval. The other is to...原创 2018-07-27 10:34:07 · 201 阅读 · 0 评论 -
树状数组学习小结
树状数组的问题模型 首先我们搞明白树状数组是用来干嘛的,现在有一个这样的问题:有一个数组a,下标从0到n-1,现在给你w次修改,q次查询,修改的话是修改数组中某一个元素的值;查询的话是查询数组中任意一个区间的和,w + q < 500000。 这个问题很常见,首先分析下朴素做法的时间复杂度,修改是O(1)O(1)的时间复杂度,而查询的话是O(n)O(n)的复杂度...原创 2018-07-22 09:24:27 · 258 阅读 · 0 评论 -
51Nod 1081 子段求和(树状数组)
1081 子段求和 给出一个长度为N的数组,进行Q次查询,查询从第i个元素开始长度为l的子段所有元素之和。例如,1 3 7 9 -1,查询第2个元素开始长度为3的子段和,1 {3 7 9} -1。3 + 7 + 9 = 19,输出19。Input第1行:一个数N,N为数组的长度(2 <= N <= 50000)。第2 至 N + 1行:数组的N个元素。(-10...原创 2018-07-22 09:12:10 · 180 阅读 · 0 评论 -
HDU 2544 最短路(dijkstra算法 求单源最短路径)
Problem Description在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗?Input输入包括多组数据。每组数据第一行是两个整数N、M(N<=100,M<=10000),N表示成都的大街上有几个路口,标号为...原创 2018-07-29 18:23:16 · 186 阅读 · 0 评论 -
HDU 1559 最大子矩阵(二维树状数组)
Problem Description给你一个m×n的整数矩阵,在上面找一个x×y的子矩阵,使子矩阵中所有元素的和最大。Input输入数据的第一行为一个正整数T,表示有T组测试数据。每一组测试数据的第一行为四个正整数m,n,x,y(0<m,n<1000 AND 0<x<=m AND 0<y<=n),表示给定的矩形有m行n列。接下来这个矩阵,有m行,每...原创 2018-07-26 10:59:06 · 338 阅读 · 0 评论 -
SPOJ - DQUERY D-query (主席树 求区间不同数的个数)
ProblemGiven a sequence of n numbers a1, a2, ..., an and a number of d-queries. A d-query is a pair (i, j) (1 ≤ i ≤ j ≤ n). For each d-query (i, j), you have to return the number of distinct element...原创 2018-07-29 09:52:18 · 351 阅读 · 0 评论 -
编辑距离问题(动态规划)
一、问题描述 设A和B是两个字符串,长度分别为n,m要用最少的字符操作(包括字符的插入、删除、修改),这样的操作称为字符串A到B的操作距离,记为d(A,B)。#include <iostream>#include <cstring>#include <algorithm>#define MAXN 1000using name...原创 2018-05-21 09:40:17 · 1679 阅读 · 0 评论