数据结构
文章平均质量分 50
cugzyc
Coding && Reading.
展开
-
数据结构——绪论+线性表
绪论原创 2020-09-28 17:29:38 · 139 阅读 · 0 评论 -
最短路上机【dijkstra】
#include<iostream>#include<cstdio>#include<cstring>using namespace std;#define inf 0x3f3f3f3fint path[105];int ma[105][105];bool vis[105];int dis[105];int n,m;void in...原创 2018-11-13 18:22:25 · 144 阅读 · 0 评论 -
Dijkstra 堆优化 邻接表存图
#include<bits/stdc++.h>using namespace std;vector<int>vec[105],val[105];int n,m;int dis[105];bool vis[105];int path[105];#define inf 0x3f3f3f3fint main(){ int x,y,v; cin...原创 2018-11-13 20:37:27 · 202 阅读 · 0 评论 -
Dijkstra单源最短路
Dijkstra详解#include<bits/stdc++.h>using namespace std;#define inf 0x3f3f3f3fint n,m;bool book[105];int ma[105][105];int dis[105];int main(){ memset(book,0,sizeof(book)); memse...原创 2018-11-12 21:25:55 · 167 阅读 · 0 评论 -
深度优先搜索遍历图【邻接矩阵/邻接表】
邻接矩阵存图#include<bits/stdc++.h>using namespace std;int ma[105][105];bool vis[105];int n,m;void dfs(int x){ cout<<"->"<<x; vis[x]=1; for(int i=1;i<=n;i++){ if(ma[x]...原创 2018-11-20 20:27:19 · 508 阅读 · 0 评论 -
邻接表存图Dijkstra
#include<bits/stdc++.h>using namespace std;#define inf 0x3f3f3f3fvector<int>w[105],e[105];int dis[105];bool vis[105];int n,m;void dij(){ int temp; memset(vis,0,sizeof(vis...原创 2018-11-20 21:58:23 · 408 阅读 · 0 评论 -
广度优先搜索遍历图【邻接矩阵/邻接表】
邻接矩阵存图 #include<bits/stdc++.h>using namespace std;#define inf 0x3f3f3f3fint ma[105][105];bool vis[105];int n,m;// n 顶点数void bfs(int root){ queue<int>q; q.push(root); vis[root]...原创 2018-11-19 20:54:16 · 1890 阅读 · 0 评论 -
排序算法合集【数据结构】
#include<bits/stdc++.h>using namespace std;#define MAXN 10int N[MAXN+5];//10000000typedef struct{ int key; //int m;}ElemType;typedef struct{ int len; ElemType *r;//*r 与 ...原创 2018-11-29 18:46:18 · 197 阅读 · 0 评论 -
插入排序
/*#include<iostream>using namespace std;int main(){ int n,i,j; cin>>n; int a[100]; for(i=1;i<=n;i++){ cin>>a[i]; } for(i=2;i<=n;i++){ if(a[i]<a[i-1]){ a[0]=...原创 2018-11-26 18:25:19 · 81 阅读 · 0 评论 -
各种排序算法时间效率,数据移动次数以及比较次数对比【数据结构】
#include<bits/stdc++.h>using namespace std;#define MAXN 100000000int maxn;int N[MAXN+5];// Compare 比较次数 Move 移动次数 long long InsertMove,InsertComp,BInsertMove,BInsertComp,Q...原创 2018-12-02 21:37:47 · 19658 阅读 · 4 评论 -
排序实验上机
#include<bits/stdc++.h>using namespace std;int N[10005];typedef struct{ int key; //int m;}ElemType;typedef struct{ int len; ElemType *r;}sq;void CreateNum(){ sr...原创 2018-11-27 18:15:32 · 308 阅读 · 0 评论 -
完成版
#include<bits/stdc++.h>using namespace std;int b[26]={0};int bb[26]={0};int kk;struct node{ int w; int p,l,r;};set <node> se;string Open(char* s){ string str = "";...原创 2018-11-01 17:59:45 · 148 阅读 · 0 评论 -
哈夫曼树文件操作
#include<bits/stdc++.h>using namespace std;int b[26]={0};int bb[26]={0};int kk;struct node{ int w; int p,l,r;};set <node> se;string Open(char* s){ string str = "";...原创 2018-11-01 17:53:53 · 683 阅读 · 0 评论 -
HDU 1686 Oulipo 【KMP查询子串出现次数】
The French author Georges Perec (1936–1982) once wrote a book, La disparition, without the letter 'e'. He was a member of the Oulipo group. A quote from the book: Tout avait Pair normal, mais tout s’...原创 2018-08-18 10:55:09 · 244 阅读 · 0 评论 -
最小生成树两种算法的区别以及Prim算法与Dijkstra算法的区别
Prim和Kruskal的不同之处在于两者选择的变量不同,Prim选择的是始终保持权值最小,然后逐个加点构建一棵树。而Kruskal则是始终保证是一棵树(虽然构建过程中不一定是真正的树,但并查集判环可以这样理解:是为了保证结果是一颗树),然后逐条加边,使权值最小。知道上述两种思想后,来谈谈代码的(都是基于贪心)实现:Prim:(这里把权值理解成距离)假设,已经确定的点的集合为S,那么还未确...原创 2018-08-18 15:30:28 · 2727 阅读 · 0 评论 -
HDU-1754 I Hate It【线段树,单点更新,区间最大值】
很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。 这让很多学生很反感。 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。Input本题目包含多组测试,请处理到文件结束。 在每个测试的第一行,有两个正整数 N 和 M ( 0<N<=200000,0<M<5...原创 2018-08-22 16:00:07 · 141 阅读 · 0 评论 -
线段树
怎么觉得有dp的意思。。。// 1e5 1e6 1e7 1e8 1e9 (1e5)// 1 2 3 4 5 6////#include <bits/stdc++.h>////using namespace std;//vector<int> v;//int a[100];//int main() {// int n, x;// ci...原创 2018-08-22 17:01:05 · 126 阅读 · 0 评论 -
HDU 1166 敌兵布阵【线段树(单点更新与区间求和)】
C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。 中央情报局要研究敌人究竟演习什么战术,所...原创 2018-08-22 17:34:19 · 127 阅读 · 0 评论 -
线段树详解(单点更新与成段更新\区间更新操作)
本文纯属原创,转载请注明出处,谢谢。 距离第一次接触线段树已经一年多了,再次参加ACM暑假集训,这一次轮到我们这些老家伙们给学弟学妹们讲解线段树了,所以就自己重新把自己做过的题目看了一遍,然后写篇博客纪念一下。作为一个菜鸟,文中肯定有很多表达不是很准确甚至错误的地方,欢迎各位大牛指正。 ...转载 2018-08-21 18:00:10 · 893 阅读 · 1 评论 -
【二叉树上的路径数】及【过树上两个节点最长路径】
#include<bits/stdc++.h>using namespace std;const int maxn=1e3+20;vector<int>G[maxn]; int x,y,ans,n;int dfs(int v){ int res=0; //for(auto &i:G[v]) i 遍历后面容器中的每个元素 for(int j=0...原创 2018-08-21 21:18:50 · 835 阅读 · 0 评论 -
链表基本功能
#include <stdio.h>#include <stdlib.h>typedef int ElemType;typedef struct Node { ElemType data; struct Node *next;}Node,*LinkedList;LinkedList LinkedListInit() { Node *...原创 2018-09-17 17:15:58 · 310 阅读 · 0 评论 -
链表
#include<bits/stdc++.h>using namespace std;struct node{ int n; node *pnext;};node* create(){ node *p=NULL; p=(node*)malloc(sizeof(p)); return p;}void add(node* pp){ ...原创 2018-09-15 10:57:25 · 110 阅读 · 0 评论 -
双栈实现整数(支持大于十的整数)计算器【数据结构】
通过栈的操作实现简单的计算器首先定义两个栈,一个叫s_num用来存放操作数,另一个叫s_opt用来存放操作符。再定义一个字符数组用来存放输入的表达式,初始化为0;当表达式的字符不为‘/0’时,或者操作符栈中不为空的时候,就要一直执行程序!在执行的时候做两个判断,输入的不是数字就是操作符,当输入数字的时候进栈就可以了,并且i++,遍历下一个。当遇到操作符时:有三种情况一、入栈...原创 2018-10-06 12:22:23 · 706 阅读 · 2 评论 -
Number Sequence 【KMP查找字串第一次出现的位置】
Given two sequences of numbers : a[1], a[2], ...... , a[N], and b[1], b[2], ...... , b[M] (1 <= M <= 10000, 1 <= N <= 1000000). Your task is to find a number K which make a[K] = b[1], a[K ...原创 2018-08-18 09:55:44 · 241 阅读 · 0 评论