
算法
诺诺罗亚.
这个作者很懒,什么都没留下…
展开
-
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 · 285 阅读 · 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 · 200 阅读 · 0 评论 -
最小生成树讲解
写给自己看而已有两种算法(关于这两个算法的名字没必要纠结。。。中文翻译出来叫啥都有)1.普里姆算法(时间复杂度n2(n为点的数量))思路:随便找一个点A,找到这个点A连接其他点B的最小的边(现在默认已经连上两个点了),将这两个点作为一个点A来看(跟其他点C连接的举例取两个点跟点C的最小值,一个for循环可实现)。for循环处理所有的点,直到所有点连接上我们就能找到最小生成树2.克鲁斯卡算...原创 2019-07-03 15:14:17 · 336 阅读 · 0 评论 -
Poj 3009 Curling 2.0
题目大意:有一个球,球可以走四个方向,每走一条直线算作一步。并且碰到墙可以把墙撞碎(至少要有一个可以走的位置才能撞碎墙即’213’是不可以走通的但是’2013’可以走通),2、3分别表示起点和终点,1表示墙,0表示路,超过10步就输出-1。注意:出地图会失败,没有边界(只有碰到墙才可以转弯)数据挺水:因为超过10就输出-1了附AC代码#include<iostream>usi...原创 2019-06-18 16:06:49 · 239 阅读 · 0 评论 -
Poj 3083 Children of the Candy Corn
题目大意:前提:(迷宫中一直向左或者向右走(可用DFS),一定可以走出迷宫,即从S走到T)要求输出一直向左走走出迷宫需要的步数,一直向右走走出迷宫需要的步数,和走出迷宫需要的最小步数(两次深搜,一次广搜)附AC代码#include<iostream>#include<queue>using namespace std;#define MapMax 40#def...原创 2019-06-18 10:15:57 · 234 阅读 · 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 · 286 阅读 · 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 · 256 阅读 · 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 · 166 阅读 · 0 评论 -
Poj 2488 DFS
题目大意:象棋中,马只能走‘日’,给一个q*p的地图,问马能否走完所有的格子,并且输入路径(注意字典序)。DFS模板题没啥好说的,注意字典序就行 要不指定过不了。。。附AC代码#include<iostream>#include<queue>using namespace std;#define DirMax 8#define MapMax 50int Di...原创 2019-06-14 11:28:22 · 171 阅读 · 0 评论 -
Poj 2251 Dungeon Master
简单的三维BFS因为mark数组定义成了char型 wa了好多次(一定要细心)附AC代码#include<iostream>#include<queue>using namespace std;char Map[100][100][100];int Mark[100][100][100];int n, m, l;int Dir[6][3] = { { 1,...原创 2019-06-19 09:43:16 · 291 阅读 · 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 · 243 阅读 · 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 · 257 阅读 · 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 · 148 阅读 · 0 评论