- 博客(5)
- 收藏
- 关注
原创 我的题解(3)-求最小循环节(KMP,POJ2406)
KMP(烤馍片)算法想必大家都会吧,这次让我们来做一道题——求最小循环节。 先上题,题目大意是这样的(我对原题进行了一些改动):给你一个字符串s(|s|≤1,000,000),求其最小循环节。最小循环节指有一s的子串a,s=aaa...a,也就是共n个a可顺序拼成原串s(原题是说s=a^n)。 样例: 1.abcd 最小循环节为其本身 2.aa...
2018-05-02 19:36:37
1192
1
原创 我的题解(2)-病毒
先上题:题目描述二进制病毒审查委员会最近发现了如下的规律:某些确定的二进制串是病毒的代码。如果某段代码中不存在任何一段病毒代码,那么我们就称这段代码是安全的。现在委员会已经找出了所有的病毒代码段,试问,是否存在一个无限长的安全的二进制代码。示例:例如如果{011, 11, 00000}为病毒代码段,那么一个可能的无限长安全代码就是010101…。如果{01, 11, 000000}为病毒代码段,那...
2018-03-06 21:36:49
1153
原创 并查集精讲
今天讲讲并查集:首先,我们来看看并查集的原始思路:所谓并查集,由并(union),查(find),集(set)三部分构成。适用于较大数据、复杂关系的题目,如:给你许多关系,每行两数M a b,代表两人是亲戚;或Q a b,问两人是否是亲戚?如果数据大的话,暴力就不行了。所以我们用到并查集。(我作为一个吃货,特别爱叫它 饼查集)并查集是树形结构,它是一种有向图,无环。例如:
2018-01-19 21:06:28
353
原创 我的题解(1)-最大连续和
这次给大家讲道题,废话不多说,上题:题目描述一个长度为n数组A的最大连续和,是指所有满足1≤L≤R≤n的L和R中A[L]+A[L+1]+...+A[R]的最大值。一次交换操作是指:(1) 选择两个下标i和j(i ≠ j)(2)进行赋值,tmp=A[i];A[i]=A[j],A[j]=tmp;给定一个长度为n的数字,最多进行m次交换操作后,该数组的最大连续和。
2018-01-05 18:30:07
1538
原创 做基础动态规划题目的方法
一般在各类比赛,如NOIP中,动态规划题非常普遍,那么怎么做动态规划题呢?首先建议不要套公式,要在理解的基础上自己总结公式。1.大部分动态规划可以写成记忆化搜索,如分治。如果不会写动规,可以试试记忆化;2.首先写动规需要明确状态:一个数组f[i][j],明确f[i][j]代表什么;3.思考转移:如01背包,转移应是:f[j]=f[j-w[i]]+c[i],也就是应该用什么公式;4.明确起点与目标:起点可以理解成初始化,如f[0]=0;目标就是结果,如f[n]。这里常用一种方法叫填表,也就是模拟
2017-12-07 21:08:41
411
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人