数据结构
文章平均质量分 52
应付学校考试的入门级数据结构与算法讲解
丶di
这个作者很懒,什么都没留下…
展开
-
神秘国度的爱情故事-数据结构课设-暴力/树剖LCA
实验内容神秘国度的爱情故事[问题描述]某个太空神秘国度中有很多美丽的小村,从太空中可以想见,小村间有路相连,更精确一点说,任意两村之间有且仅有一条路径。小村 A 中有位年轻人爱上了自己村里的美丽姑娘。每天早晨,姑娘都会去小村 B 里的面包房工作,傍晚 6 点回到家。年轻人终于决定要向姑娘表白,他打算在小村 C 等着姑娘路过的时候把爱慕说出来。问题是,他不能确定小村 C 是否在小村 B 到小村 A 之间的路径上。你可以帮他解决这个问题吗?[基本要求]1.输入由若干组测试数据组成。每组数据的第 1 行原创 2021-01-21 13:08:02 · 544 阅读 · 1 评论 -
C++数据结构-实验4-查找和排序算法实现
实验四 查找和排序算法实现1、各种排序算法的实现用随机函数生成 16 个 2 位正整数(10~99),实现插入排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序、二路归并排序等多种排序算法,输出排序中间过程、统计关键字的比较次数和记录的移动次数。比较次数和移动次数,其实我也不懂的,经供参考#include<iostream>#include<iomanip>#include<cstdio>using namespace std;//插入排序,从数组下原创 2021-01-12 10:00:10 · 2105 阅读 · 0 评论 -
C++数据结构-实验3-图的操作与实现
实验三 图的操作与实现一、实验目的1、图的邻接表和邻接矩阵存储2、图的各种遍历算法实现3、最小生成树的算法实现4、最短路径的算法实现二、实验类型:验证性三、实验学时:4学时四、实验教学的重点和难点重点:图的基本操作和遍历难点:邻接表和邻接矩阵的操作五、实验内容:利用图的邻接表或邻接矩阵存储结构设计并实现各种操作算法(任选一种存储结构来实现算法)。1、图的邻接表和邻接矩阵存储建立下图的邻接表或邻接矩阵,并输出之。2、图的各种遍历算法实现以0结点为起点实现上述图的深度优先和广度原创 2020-12-12 02:20:48 · 2663 阅读 · 0 评论 -
C++数据结构-实验2-二叉树的操作与实现
数据结构 实验二 二叉树的操作与实现利用二叉树的二叉链式存储结构设计并实现各种操作算法。1、二叉树的基本操作算法实现(1) 利用二叉树字符串“A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建二叉树的二叉链式存储结构;(2) 输出该二叉树;(3) 输出‘H’节点的左、右孩子结点值;(4) 输出该二叉树的结点个数、叶子结点个数、二叉树的度和高度。2、二叉树的各种遍历算法实现实现上述二叉树的先序、中序和后序遍历的递归和非递归算法。3、线索二叉树的遍历中序线索化上原创 2020-12-03 21:18:11 · 1631 阅读 · 0 评论 -
C++数据结构-实验1-线性表、栈和队列
数据结构实验一3、队列的链式存储结构的实现(1) 用随机函数生成10个3位整数(100~999),把这些整数应用入队操作存于队列中;(2) 应用遍历操作输出队列的内容;(3) 把队列的内容翻转,应用出队操作输出队列的内容。#include<iomanip>#include<stdio.h>#include<iostream>using namespace std;struct QueueNode {public: int data; QueueNo原创 2020-12-03 09:45:48 · 1049 阅读 · 0 评论 -
HUD-3949-XOR-线性基第k小模板
传送门-HUD-3949题意:求数列任意异或得到的所有结果中第k小模板题,可以借鉴一下,试了下可以ac,可以凑合的用吧?#pragma GCC optimize(2)#include<bits/stdc++.h> using namespace std;#define endl "\n" #define ll long longll d[105],d2[105],n,m,tot,k;inline void insert(ll x){ for(int i=61;i>=0;原创 2021-02-21 20:56:26 · 100 阅读 · 0 评论 -
链式前向星法存储图和遍历方法
可以图中联通的多个点当前一条条的“链”,这些边则是把这些点“串联”在一起(即存在类似树种的父子节点关系,若题本无特殊指明为有向图,故默认为无向图,因为一条边中的两个节点都可能是父节点或子节点,故需要正反两次建边进行链式存储)定义struct Edge{int to,next;}edge[n*2+1]; 定义结构体Edge和Edge结构体数组edge,其中to表示edge数组的当前下标i表示的父节点i指向的子节点to,而next表示在edge数组种存储以前点i为父节点的前一条边的下标,故可以通过i=edge原创 2021-01-09 10:11:37 · 457 阅读 · 2 评论 -
P3376 【模板】网络最大流Dinci
传送门:P3376 【模板】网络最大流盯着洛谷OI爷的题解,我调了一个三个小时后,发现加个#define int long long就过了QAQvector邻接表这是在白书抄的模板//#pragma GCC optimize(2)#include<bits/stdc++.h> using namespace std;#define ll long long#define int long long#define endl "\n"const int MAX=1e4+7;co原创 2020-10-19 18:31:31 · 193 阅读 · 0 评论 -
2016 CCPC Hangzhou Onsite B - Bomb HDU - 5934 强连通分量tarjan
2016年中国大学生程序设计竞赛(杭州)传送门:HDU - 5934 BombProblem DescriptionThere are N bombs needing exploding.Each bomb has three attributes: exploding radius ri, position (xi,yi) and lighting-cost ci which means you need to pay ci cost making it explode.If a un-light原创 2020-10-17 21:43:03 · 205 阅读 · 0 评论 -
Gym - 101630 C - Connections 两次dfs强连通图
题目链接:Gym - 101630 C - Connections题目描述输入描述输出描述样例题意一个有向图,有n个点,有m条边,现在需要你删除m-2n条边,使得剩下的2n条边依旧可以组成强连通图,且把删除的边输出题解正反向建图且对各个边进行相同的下标标记,默认1为起始位置,分别在正反图进行dfs遍历,并判断是否经历过该点和该边,这就可以保证有一个强连通图了,故可以直接for遍历选出前n-2*m个没有被遍历过的边了。#pragma GCC optimize(2)#include&原创 2020-10-07 20:58:22 · 188 阅读 · 0 评论 -
P1972 [SDOI2009]HH的项链 树状数组+离线
P1972 [SDOI2009]HH的项链 树状数组+离线文章目录题目描述输入格式输出格式题解题目描述HH 有一串由各种漂亮的贝壳组成的项链。HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH 不断地收集新的贝壳,因此,他的项链变得越来越长。有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同的贝壳?这个问题很难回答…… 因为项链实在是太长了。于是,他只好求助睿智的你,来解决这个问题。输入格式一行一个正整数 n,表示项链长度。第二行 n原创 2020-09-11 12:05:09 · 195 阅读 · 0 评论 -
AtCoder Regular Contest 064 English E - Cosmic Rays 预处理+dij最短路
题目链接:Cosmic RaysProblem StatementOn thexy-plane, Snuke is going to travel from the point (xs,ys) to the point (xt,yt). He can move in arbitrary directions with speed 1. Here, we will consider him as a point without size.There are N circular barriers de原创 2020-08-17 18:35:31 · 226 阅读 · 0 评论 -
HDU-2586 How far away? LCA模板题 倍增 邻接表/head
题目链接:HDU-2586求树上两点距离最短,即ans=两点深度和-LCA最近公共祖先深度*2文章目录模板1 邻接表存图模板2 head链式前向星存图模板1 邻接表存图#pragma GCC optimize(2)#include <bits/stdc++.h>#define ll long long#define endl '\n'#define inf 0x3f3f3f3fusing namespace std;const int mod=1e9+7;const in原创 2020-08-16 13:07:34 · 156 阅读 · 0 评论 -
2020牛客暑期多校训练营(第八场)I.Interesting Computer Game并查集
题目链接:Interesting Computer Game题意n个回合,每个回合输出两个数,分别是ai、bi,且每个回合求进行三个操作中的一个操作,分别是①不进行操作,②如果之前的回合中未选出过ai,则可以选出ai,③如果之前的回合中未选出过bi,则可以选出bi。求n个回合后,获得不同数字个数的最大值。题解并查集维护连通块的点数和边数。对于每个连通块,如果有x个点、y条边,则有y≥x-1若y=x-1,则说明该连通块是最小连通块,恰好连通,对答案贡献为x-1若y≥x,则该连通块所有的点都可以选原创 2020-08-04 02:19:37 · 251 阅读 · 0 评论 -
CodeForces - 52C-Circular RMQ 线段树区间操作
题目链接:CodeForces - 52C Circular RMQ题目描述You are given circular array a 0, a 1, …, a n - 1. There aretwo types of operations with it:inc(lf, rg, v) — this operation increases each element on the segment[lf, rg] (inclusively) by v; rmq(lf, rg) — this op原创 2020-07-29 16:03:42 · 268 阅读 · 0 评论 -
牛客15175 Tree Recovery 树状数组区间操作求和模板题
题目链接:牛客15175 Tree Recovery题目描述You 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 ask for the sum of numbers in a given原创 2020-07-06 21:13:10 · 313 阅读 · 0 评论 -
线段树区间修改区间求和区间最大最小值模板
C++线段树区间修改区间最大最小值模板#pragma GCC optimize(2)#include<bits/stdc++.h> using namespace std;#define ll long long#define endl "\n"const int MAX=1e5+5;struct node{ ll sum,lz;//总和、lazy标记 ll mx,mn;//最大值max,最小值min}d[MAX<<2];ll n,m;ll a[MAX];原创 2020-07-17 13:54:30 · 823 阅读 · 0 评论 -
C++ STL中的lower_bound与upper_bound函数基础使用
1. 引用#include< algorithm>2.前提这个区间必须是有序的,即提前从小到大排过序,通常使用时会先sort一下3.作用lower_bound 可以在一个区间中二分查找,返回指向第一个大于等于 x 的元素位置的指针(或迭代器)upper_bound 可以在一个区间中二分查找,返回指向第一个大于 的元素位置的指针(或迭代器)lower_bound与upper...原创 2020-04-16 14:50:19 · 538 阅读 · 0 评论 -
C++手写快读详解(快速读入数字)
众所周知,C++里是自带读入的(这不废话吗)例如int a; cin>>a;这样的读入理解简单,适合初学者,但是非常慢。再例如:int a;scanf("%d",&a);这样的读入就比较快了,也较好理解,在题目不卡时间的情况下可以通过大部分题。——但是,还不够快。有一些毒瘤题目是非常卡时间的,稍微慢一点就过不去,因此,快读应运而生:复制代码i...原创 2020-02-26 12:30:43 · 904 阅读 · 2 评论 -
C++树状数组入门模板+例题逆序对
> #include<bits/stdc++.h>using namespace std;const int MAX=50005;int a[MAX],tree[MAX],n;int lowbit(int x) //找最低位的1 { return x&-x;}void add(int i,int x)//修改数据在i加x { while(i&l...原创 2020-04-01 12:21:00 · 1317 阅读 · 0 评论