数据结构
诺诺罗亚.
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
后缀表达式
后缀表达式:后缀表达式,又称逆波兰式,指的是不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(不再考虑运算符的优先规则)。(抄自百度百科)说到后缀表达式就不得不说中缀表达式了,中缀表达式就是我们最常见的表达式即运算符在两个操作数中间,运算优先级由运算符(包括括号)来决定,例如7+3*(8+1)-4/2.在来讲一下中缀表达式转后缀表达式的方法:首先我们需...原创 2019-05-22 17:39:50 · 1224 阅读 · 0 评论 -
Poj 2031 最小生成树
题目大意:有n个球,给你每个球的坐标(x、y、z)和半径(r),求把每个球连起来最小需要多少花费(距离)基本上是最小生成树的模板题了(精度很恶心 自己注意吧)两个球之间的距离是sqrt(pow(x1-x2,2)+pow(y1-y2,2)+pow(z1-z2,2))-r1-r2;附AC代码#include<iostream>#include<math.h>usin...原创 2019-07-03 16:26:02 · 224 阅读 · 0 评论 -
最小生成树讲解
写给自己看而已有两种算法(关于这两个算法的名字没必要纠结。。。中文翻译出来叫啥都有)1.普里姆算法(时间复杂度n2(n为点的数量))思路:随便找一个点A,找到这个点A连接其他点B的最小的边(现在默认已经连上两个点了),将这两个点作为一个点A来看(跟其他点C连接的举例取两个点跟点C的最小值,一个for循环可实现)。for循环处理所有的点,直到所有点连接上我们就能找到最小生成树2.克鲁斯卡算...原创 2019-07-03 15:14:17 · 369 阅读 · 0 评论 -
Poj 1961
一个字符串,求这个字符串到第i个字符为止的循环节的次数。poj2406的加强版具体思路请参考此处链接附AC代码#include<iostream>using namespace std;void GetKMPNext(char *Str, int *Next, int nLen){ int i = 0; int j = -1; Next[i] = j; while...原创 2019-06-03 16:23:42 · 321 阅读 · 0 评论 -
poj 2406
题目大意:我们认为字符串a(“abc”)*字符串b(“def”)的结果为"abcdef",a的n次方则就是由n个a组成的字符串。现在给定一个字符串s,问字符串s可能是a的n次方(a为任意字符),求n(题外话:字符串长度好像没给。。。so RE了两次)KMP算法中Next数组的应用附AC代码#include<iostream>using namespace std;void...原创 2019-06-03 14:50:59 · 277 阅读 · 0 评论 -
POJ 2752
题目简介:给一个字符串S,求出S的所有相同前后缀的长度KMP中对Next数组的简单应用解题思路:aabbaabb假设给定字符是: a b a b a b对应的next数组:-1 0 0 1 2 3 41.最末尾的4,表示后缀长度为4的字符串和前缀相同,可以输出4(此处只用于记录不输出,仅仅是思路。。。)2.然后我们可以确定,abab(前缀)和abab(后缀一定相同)3.默认...原创 2019-06-03 13:58:13 · 185 阅读 · 0 评论 -
Poj 3461 KMP解法
题目大意:给两个字符串(s1、s2),求s2中s1字符串出现的次数解法KMP和哈希(先写KMP,哈希后面补上)基础KMP 不做讲解 附AC代码#includeusing namespace std;void GetKMPNext(char *str, int *Next,int nLen){Next[0] =-1;int j = 0;int k = -1;while (j &...原创 2019-06-03 10:40:12 · 320 阅读 · 0 评论 -
POJ 2185
题目大意:给一个矩阵,这个矩阵是有很多个小矩阵组成的(小矩阵的应该不可以翻转),求小矩阵的面积先说一下这个题:数据是真的水。。。咋样都能过orz。然后贴一段AC的错误代码#include<iostream>using namespace std;#define ROWMAX 10001void GetKMPNext_ROW(char *Str, int *Next, in...原创 2019-06-06 14:55:24 · 284 阅读 · 0 评论 -
Poj2388
快排模板题,输出中位数即可附AC代码#include<iostream>using namespace std;void Sort(int nLeft, int nRight, int NumList[]){ if (nRight <= nLeft) { return; } int i = nLeft; int j = nRight; int nTemp...原创 2019-06-12 16:26:11 · 307 阅读 · 0 评论 -
Poj 2253 Frogger
题目大意:两个青蛙,n个石头,(两只青蛙分别在石头1和石头2上),求青蛙1到青蛙2的最小距离中的最大值(石头间的最大值)。最小生成树、最短路、dfs。。。都可以AC附AC代码#include<iostream>#include<math.h>using namespace std;struct Point{ int x, y;};double CalVa...原创 2019-07-04 15:26:44 · 171 阅读 · 0 评论
分享