算法与数据结构学习
kewlgrl
好大一只咸鱼哇
展开
-
Manacher-求最长回文字符串
转载自:http://blog.sina.com.cn/s/blog_4a08aae90100ridt.html 题目描述: 回文串就是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。 回文子串,顾名思义,即字符串中满足回文性质的子串。 给出一个只由小写英文字符a,b,c...x,y,z组成的字符串,请输出其中最长的回转载 2015-08-08 10:57:38 · 1305 阅读 · 0 评论 -
2-sat问题
序言 最近花了一点心思研究2-sat模型,看了很多论文博客等等,也在POJ上做了一点题。其实这个东西也还挺好玩的,当然,前提是每道题你都有认真分析,认真想清楚模型的意义,搞明白为什么可以这样,而不是简单的知道怎样做,就套上一个模板了事,那样,是不是也太糟蹋这门科学了。 关于2-sat,基本上所有人都会推荐两个资料: 伍昱 由对称性解转载 2016-09-01 10:04:09 · 556 阅读 · 0 评论 -
Baby-Step-Gaint-Step算法详解
Baby-Step-Gaint-Step Baby-Step-Gaint-Step用来求解高次同余方程 A^x ≡ B (mod C) 中已知A B C求较大x的情况。 按wiki百科所言: ①令x=i*n+j,其中m=ceil(sqrt(C)),原式变为A^(i*n+j) = B (mod C),两边同时乘上A^(-n*i),可以得到A^j=B*A^(-n*i) (原创 2016-08-29 15:26:06 · 965 阅读 · 0 评论 -
HUST 1010-The Minimum Length-KMP
A - The Minimum Length Time Limit:1000MS Memory Limit:131072KB 64bit IO Format:%lld & %llu SubmitStatus Description There is a string A. The length of A is less than 1,000,000. I rewr原创 2015-11-03 16:48:08 · 838 阅读 · 0 评论 -
拓展欧几里得-求AX+BY=C中X和Y的值
代码: /* * Copyright (c) 2016, 烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:exgcd.cpp * 作 者:单昕昕 * 完成日期:2016年4月2日 * 版 本 号:v1.0 */ #include #include #include #include using namespace std; typedef long原创 2016-04-06 10:39:27 · 2604 阅读 · 0 评论 -
POJ 2387-Til the Cows Come Home(Dijkstra+堆优化)
Til the Cows Come Home Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 40039 Accepted: 13620 Description Bessie is out in the field and wants to get back t原创 2016-03-30 18:30:08 · 1368 阅读 · 0 评论 -
树状数组
树状数组:用线性数据结构的方法解决动态统计子树权和的问题。 类似于线段树,将区间分成小段,方便计算权和。 举个栗子,将a数组构造成树状数组c。 如果a数组中共有8个元素a[1]~a[8],注意这里数组的下标要从1开始,那么: c[1]=a[1] c[2]=a[1]+a[2] c[3]=a[3] c[4]=a[1]+a[2]+a[3]+a[4] c[5]=a[5]原创 2016-04-09 14:28:33 · 422 阅读 · 0 评论 -
KMP算法的next、next value数组代码实现及POJ3461
昨天中午弄懂了数组的手工计算方法之后,根据书上例题解出了一道KMP算法的匹配题。 我用了next 和nextval两种解决方法,其实就是数组实现的代码片不同。 w表示给定的模式字符串 next数组代码实现如下: int next[maxw],nextval[maxw],p=0,i,j; next[0]=-1; next[1]=0; for(i原创 2015-08-12 11:11:54 · 1266 阅读 · 0 评论 -
山东省第一届ACM大学生程序设计竞赛-Balloons(搜索)
问题及代码: Balloons Time Limit: 1000MS Memory limit: 65536K 题目描述 Both Saya and Kudo like balloons. One day, they heard that in the central park, there will be thousands of people fly bal原创 2016-04-01 19:54:15 · 586 阅读 · 0 评论 -
广度优先搜索BFS(迷宫问题)
问题及代码: 给出迷宫的图纸和初始终点位置,用DFS求最小步数。 #include #include using namespace std; int a[51][51],book[51][51]; int sx,sy,n,m,p,q; struct note { int x,y,f,s;//坐标、父亲在队列中的编号(不求路径,可省略)、步数 } que[2501];原创 2016-03-30 09:23:46 · 1372 阅读 · 0 评论 -
深度优先搜索DFS(迷宫问题)
问题及代码: 给出迷宫的图纸和初始终点位置,用DFS求最小步数。 #include using namespace std; int n,m,p,q,MIN=99999999; int a[51][51],book[51][51]; void dfs(int x,int y,int step) { int next[4][2]= {{0,1},{1,0},{0,-1},{-1,0}原创 2016-03-30 08:46:31 · 5363 阅读 · 4 评论 -
HDU 1874-畅通工程续(Floyd)
畅通工程续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 41306 Accepted Submission(s): 15257 Problem Description 某省自从实行了很多年的畅通工程计划后,终于修原创 2016-04-01 20:42:34 · 524 阅读 · 0 评论 -
小球下落-二叉树
有一颗二叉树,最大深度为D,所有叶子的深度都相同。所有结点从上到下从左到右的编号分别依次是1,2,3,4,~,(2的D次方-1)。在节点1放下一个小球,它会往下落。每个内结点都有一个状态(开或关),初始时,每个内结点都处于关闭状态,当小球经过一个内结点时,开关状态会改变。当为开状态时,小球向左落下;当为关状态时,小球向下落下,直到走到叶子结点。 输出树的深度D,和小球数量I 输出第I个小球落到原创 2015-08-18 16:39:29 · 1509 阅读 · 0 评论 -
KMP算法的next、next value数组的手工计算
昨天下午在书上看到了KMP算法,看了很多很多很多遍都搞不懂什么逻辑和原理;今天上午又听了学长讲了一遍感觉没大听懂,自己又上网找了很多相关文章,试了很多例子,终于找出来KMP算法中手工计算next、next value数组的方法了。下面我借助网上的相关资料结合用我自己的思路说明一下。 一、什么是前缀后缀? 以字符串s "ababcabc" 为例: "a"的前缀和后缀都为空集,共原创 2015-08-11 15:02:17 · 4188 阅读 · 3 评论