摘要: /* 我对这个算法的理解是意淫出来的,没有详细严谨的证明 ,所以只把重要的地方注释了一下 */ int getMin(){ int i=0,j=1,k=0; while(i0) i+=k+1;//从T[i->i+k+1]开头的不会比之前的小,之前所比较的都是相等的; else j+=k+1; if(i==j) j++; ... 阅读全文
posted @ 2017-12-26 17:35 愿~得偿所愿,不负时光 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 就是求一个串的最大最小表示法的开始下标,然后求有多少个做大最小表示,输出格式为 最小表示下标 它的个数 最大表示下标 它的个数 基本思路: 最小最大表示法模板题,然后求一下循环节,很容易知道,循环节和最大最小表示数量上相等,然后问题就解决啦; 代码如下: 阅读全文
posted @ 2017-12-26 16:58 愿~得偿所愿,不负时光 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 输入样例个数,每个样例有两行,第一行是26个字母,分别代表a~z加密后的密文;第二行代表一串密文+明文,密文一定是完整的,但明文可能不完整,让你输出最短的(密文+明文); 基本思路: 拓展kmp,因为密文是完整的,所以它的长度必然是一半以上,所以把前一半转换成明文放到另一个数组里,然后后 阅读全文
posted @ 2017-12-24 15:08 愿~得偿所愿,不负时光 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 求一个字符串中某一个既是前缀又是后缀的前缀的结尾下标; 基本思路: 从_next[len]开始找_next[_next[len]],再找_next[_next[_next[len]]],一直找到0; 代码如下: 阅读全文
posted @ 2017-12-23 18:20 愿~得偿所愿,不负时光 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 求最少在结尾补上几个字符才能形成循环 基本思路: next数组有一个性质,长度为len的字符串的最小长度的循环节(可能没有,但有的话一定是)len-next【len】,因为最长不能是原串,所以最长为next【len】,所以最短的,也就是最基本的循环节就是len-next[【len】; 对 阅读全文
posted @ 2017-12-21 16:47 愿~得偿所愿,不负时光 阅读(144) 评论(0) 推荐(0) 编辑
摘要: int nx[maxn],ex[maxn]; //nx[i]表示模式串T[i~len-1]与T的最长公共前缀 //ex[i]表示母串S[i~len-1]与T的最长公共前缀 char S[maxn],T[maxn]; int lent,lens; void getNext(){ nx[0]=lent;//本身匹配 int j=0; while(j+10~p-k+1 ... 阅读全文
posted @ 2017-12-18 23:00 愿~得偿所愿,不负时光 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 转自:https://segmentfault.com/a/1190000008484167 /* 由于回文分为偶回文(比如 bccb)和奇回文(比如 bcacb),而在处理奇偶问题上会比较繁琐,所以这里我们使用一个技巧,在字符间插入一个字符(前提这个字符未出现在串里)。举个例子:s="abbaho 阅读全文
posted @ 2017-12-18 15:19 愿~得偿所愿,不负时光 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 关于后缀自动机我实在不好意思说些啥,这确实是我学过最难得算法,就到这一刻我还有点小细节没弄懂,但大体都明白了,clj老师不愧是传奇人物,太强啦。 关于后缀数组,详细还是要看陈老师的ppt,结合网上的解释,加油。 转自:http://blog.csdn.net/thy_asdf/article/det 阅读全文
posted @ 2017-12-14 17:00 愿~得偿所愿,不负时光 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 恢复内容开始 定义:(直接上例子了) 前缀表达式: - × + 3 4 5 6 运算符位于操作数之前。 中缀表达式: (3 + 4) × 5 - 6 操作符以中缀形式处于操作数的中间。 后缀表达式: 3 4 + 5 × 6 - 运算符位于操作数之后。 表达式求值: 前缀表达式求值:从右至左扫描表达式 阅读全文
posted @ 2017-12-10 15:02 愿~得偿所愿,不负时光 阅读(1990) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 链表倒置 基本思路: 一个指针只想当前的表头,另一个不断边插边后移,最后处理下新的表头和表尾即可; 代码如下: 阅读全文
posted @ 2017-12-08 17:32 愿~得偿所愿,不负时光 阅读(391) 评论(0) 推荐(0) 编辑
摘要: 恢复内容开始 题目大意: 输入元素个数,输入数组,输入右移步数,输出结果; 基本思路: 可以把数组(从下标为0开始存储)看成两部分,分别是【0,n-step-1】,【n-step,n-1】,然后两部分分别倒置,然后将整个数组倒置,就得到了正确结果; 至于为什么是这样,你可以找个例子看看,然后理论证明 阅读全文
posted @ 2017-12-08 14:58 愿~得偿所愿,不负时光 阅读(1095) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给定n个字符串,求出现在不小于k个字符串中的最长子串 基本思路: 二分长度,统计个数,一般套路,就是这个跟说好的不一样啊,我非得开2倍才不re,真他妈不爽,先二分找出长度,然后根据长度输出字符串; 代码如下: 阅读全文
posted @ 2017-12-07 19:55 愿~得偿所愿,不负时光 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 求两个字符串的长度大于k的公共子串的个数(可以相同) 基本思路: 后缀数组+单调栈,就是降低复杂度到O(n); 代码如下: 阅读全文
posted @ 2017-12-07 18:05 愿~得偿所愿,不负时光 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 求多个字符串的最长公共子串 基本思路: 参加我的博客hdu2774 代码如下: 阅读全文
posted @ 2017-12-07 00:59 愿~得偿所愿,不负时光 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 求两个字符串的最长公共子串 基本思路: 首先自然而然的想到应当把两个串拼接起来,为了便于处理,所以在串的中间加个大量(就是一个比其他值大的值),最后别忘了拼接上下标为n的时候是0,调用da函数的时候传n+1,利用height数组,就是遍历height数组,然后就是找height中比res 阅读全文
posted @ 2017-12-07 00:04 愿~得偿所愿,不负时光 阅读(234) 评论(0) 推荐(0) 编辑
摘要: /* 罗穗骞大牛的算法,交叉信院的人当真是我们国家最顶尖的人才啊, 我辈只能膜拜,连羡慕嫉妒恨的情绪都没有,究其原因就是差距太大, 不过我辈亦有我辈的坚持,付出数十倍的时间却也能窥见天才所见的一斑, 这便足矣。 我零零碎碎的时间加起来也看了有一整天吧,终于全部弄透彻了,不过我还是没有信心能手写出来, 不过不要紧,慢慢练嘛。 */ /* 大致思路就是基数排序+倍增,以及根据Height的性质求He... 阅读全文
posted @ 2017-12-06 23:38 愿~得偿所愿,不负时光 阅读(314) 评论(0) 推荐(1) 编辑
摘要: 题目大意: 掷骰子,输入n,如果总数大于等于n,然后游戏结束,求出期望投掷数,然后有的地方类似飞行棋,输入m,然后后面m行,每行两个数,x,y,表示如果走到x则直接飞到y; 基本思路: 真的是最经典的可以说是模板期望题了,本菜鸡出的第一道概率dp; 代码如下: 阅读全文
posted @ 2017-12-03 21:03 愿~得偿所愿,不负时光 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 转自:https://www.cnblogs.com/kuangbin/archive/2012/10/02/2710606.html 题目大意: 有三个骰子,分别有k1,k2,k3个面。每次掷骰子,如果三个面分别为a,b,c则分数置0,否则加上三个骰子的分数之和。当分数大于n时结束。求游戏的期望步 阅读全文
posted @ 2017-12-03 20:22 愿~得偿所愿,不负时光 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 输入n,代表一位童子兵要穿过一条路,路上有些地方放着n个地雷(1<=n<=10)。再输入p,代表这位童子兵非常好玩,走路一蹦一跳的。每次他在 i 位置有 p 的概率走一步到 i+1 ,或者 (1-p) 的概率跳一步到 i+2。输入n个数,代表n个地雷的位置(1<=n<=100000000 阅读全文
posted @ 2017-12-03 18:07 愿~得偿所愿,不负时光 阅读(232) 评论(0) 推荐(0) 编辑
摘要: //快速幂 ll quickMod(ll a,ll b,ll mod){ ll ans=1; while(b){ if(b&1){ ans=(ans*a)%mod; } a=(a*a)%mod; b>>=1; } return ans; } //矩阵快速幂 struct Ma... 阅读全文
posted @ 2017-12-03 18:02 愿~得偿所愿,不负时光 阅读(167) 评论(0) 推荐(0) 编辑