
算法与数据结构学习
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 · 1349 阅读 · 0 评论 -
2-sat问题
序言 最近花了一点心思研究2-sat模型,看了很多论文博客等等,也在POJ上做了一点题。其实这个东西也还挺好玩的,当然,前提是每道题你都有认真分析,认真想清楚模型的意义,搞明白为什么可以这样,而不是简单的知道怎样做,就套上一个模板了事,那样,是不是也太糟蹋这门科学了。 关于2-sat,基本上所有人都会推荐两个资料: 伍昱 由对称性解转载 2016-09-01 10:04:09 · 591 阅读 · 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 · 1005 阅读 · 0 评论 -
HUST 1010-The Minimum Length-KMP
A -The Minimum LengthTime Limit:1000MS Memory Limit:131072KB 64bit IO Format:%lld & %lluSubmitStatusDescriptionThere is a string A. The length of A is less than 1,000,000. I rewr原创 2015-11-03 16:48:08 · 866 阅读 · 0 评论 -
拓展欧几里得-求AX+BY=C中X和Y的值
代码:/** Copyright (c) 2016, 烟台大学计算机与控制工程学院* All rights reserved.* 文件名称:exgcd.cpp* 作 者:单昕昕* 完成日期:2016年4月2日* 版 本 号:v1.0*/#include#include#include#includeusing namespace std;typedef long原创 2016-04-06 10:39:27 · 2657 阅读 · 0 评论 -
POJ 2387-Til the Cows Come Home(Dijkstra+堆优化)
Til the Cows Come HomeTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 40039 Accepted: 13620DescriptionBessie is out in the field and wants to get back t原创 2016-03-30 18:30:08 · 1399 阅读 · 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 · 443 阅读 · 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 · 1344 阅读 · 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 · 614 阅读 · 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 · 1398 阅读 · 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 · 5426 阅读 · 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): 15257Problem Description某省自从实行了很多年的畅通工程计划后,终于修原创 2016-04-01 20:42:34 · 542 阅读 · 0 评论 -
小球下落-二叉树
有一颗二叉树,最大深度为D,所有叶子的深度都相同。所有结点从上到下从左到右的编号分别依次是1,2,3,4,~,(2的D次方-1)。在节点1放下一个小球,它会往下落。每个内结点都有一个状态(开或关),初始时,每个内结点都处于关闭状态,当小球经过一个内结点时,开关状态会改变。当为开状态时,小球向左落下;当为关状态时,小球向下落下,直到走到叶子结点。输出树的深度D,和小球数量I输出第I个小球落到原创 2015-08-18 16:39:29 · 1556 阅读 · 0 评论 -
KMP算法的next、next value数组的手工计算
昨天下午在书上看到了KMP算法,看了很多很多很多遍都搞不懂什么逻辑和原理;今天上午又听了学长讲了一遍感觉没大听懂,自己又上网找了很多相关文章,试了很多例子,终于找出来KMP算法中手工计算next、next value数组的方法了。下面我借助网上的相关资料结合用我自己的思路说明一下。一、什么是前缀后缀? 以字符串s"ababcabc" 为例:"a"的前缀和后缀都为空集,共原创 2015-08-11 15:02:17 · 4284 阅读 · 3 评论