上一页 1 ··· 4 5 6 7 8 9 10 11 12 13 下一页

2013年8月31日

poj2185 Milking Grid

摘要: 题目链接:http://poj.org/problem?id=2185这道题我看了好久,最后是通过参考kuangbin的博客才写出来的感觉next数组的应用自己还是掌握的不够深入这道题其实就是先对于每一行字符串计算next数组(就是把每一行的字符串当作单个字符啦),最后n-next[n]即为n行字符串的最小重复单元然后对于每一列字符串计算next数组,最后m-len[m]即为m列的最小重复单元由于答案是求最小覆盖单元的面积所以答案即为(n-len[n])*(m-len(m));感觉很妙啊!!!代码如下: 1 #include 2 #include 3 #include 4 using name 阅读全文

posted @ 2013-08-31 00:03 GyyZyp 阅读(166) 评论(0) 推荐(0) 编辑

2013年8月30日

hdu1711 Number Sequence

摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1711KMP的简单应用啊直接贴代码了代码: 1 #include 2 #include 3 #include 4 using namespace std; 5 #define maxn 1000010 6 int n,m; 7 int a[maxn],b[maxn]; 8 int f[maxn]; 9 void callfail()10 {11 int i,j=0,k=-1;12 f[0]=-1;13 while(j<m)14 {15 if(k==-1... 阅读全文

posted @ 2013-08-30 18:11 GyyZyp 阅读(132) 评论(0) 推荐(0) 编辑

poj1961 Period

摘要: 题目链接:http://poj.org/problem?id=1961题意就是求一个串的连续重复子串是KMP中next数组的应用答案即为如果j%(j-f[j])==0那么最长重复次数为j/(j-f[j])(j表示字符串的当前位置)自己可以证明,也可以记住这个结论代码: 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 int n; 7 char s[1001000]; 8 int f[1001000]; 9 void callfail()10 {11 int i,j=0,k=-1;12 f[0]... 阅读全文

posted @ 2013-08-30 17:43 GyyZyp 阅读(153) 评论(0) 推荐(0) 编辑

2013年8月27日

lightOJ 1017 Brush (III) DP

摘要: 题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1017搞了一个下午才弄出来,,,,,还是线性DP做的不够啊看过数据量就知道状态转移方程和x,没有关系然后再仔细推导就会知道整个转移方程只和k与y的差值有关然后继续推导。。。。定义dp[i][j]表示表示第j步删除最上边的i点,定义mv[i]表示删除i点的同时可以向下移动的最远位置(可以预处理出来)那么dp[i][j]=max(dp[i-1][j],dp[i-mv[i]][j-1]+mv[i]);状态转移方程表示dp[i][j],如果删除i点那么其等于dp[i-mv[i]][j 阅读全文

posted @ 2013-08-27 08:41 GyyZyp 阅读(255) 评论(0) 推荐(0) 编辑

2013年8月26日

HDU4497GCD and LMC最大公约数与最小公倍数

摘要: HDU4497GCD and LMC最大公约数与最小公倍数 阅读全文

posted @ 2013-08-26 19:19 GyyZyp 阅读(375) 评论(0) 推荐(0) 编辑

HDU4704Sum 费马小定理+大数取模

摘要: HDU4704Sum 费马小定理+大数取模 阅读全文

posted @ 2013-08-26 17:32 GyyZyp 阅读(1445) 评论(0) 推荐(1) 编辑

HDU4686——Arc of Dream矩阵快速幂

摘要: HDU4686矩阵快速幂 阅读全文

posted @ 2013-08-26 17:05 GyyZyp 阅读(228) 评论(0) 推荐(0) 编辑

2013年8月25日

poj3461 Oulipo

摘要: 题目链接:http://poj.org/problem?id=3461题意就是求模式串在一个主串中出现的次数KMP的简单应用代码: 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define maxn 1000100 7 int f[maxn]; 8 char s1[maxn]; 9 char s2[maxn];10 int n,m;11 void callfail()12 {13 int i,j=0,k=-1;14 f[0]=-1;15 while(j<n)16 {17 ... 阅读全文

posted @ 2013-08-25 22:35 GyyZyp 阅读(150) 评论(0) 推荐(0) 编辑

hdu2594 Simpsons’ Hidden Talents

摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2594思路:其实就是求相同的最长前缀与最长后缀KMP算法的简单应用;假设输入的两个字符串分别是s1,s2。s1后面再上一个任意的大写字母,然后再将串s2连在s1的后面,再在后面加上一个任意的大写字母(注意应该与前面所加的字母不同),那么对当前的s1串求其失败函数f,那么f[n-1]即为最大的匹配数,是不是很简单啊!!!至于中间和后面为什么加大些字母,留给读者自己思考咯代码: 1 #include 2 #include 3 #include 4 #include 5 using namespace s 阅读全文

posted @ 2013-08-25 18:23 GyyZyp 阅读(147) 评论(0) 推荐(0) 编辑

hdu 4552 怪盗基德的挑战书

摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4552思路:其实可以用KMP+DP解决我这里给出后缀数组的解题方法思路:初始化ans=n(n为字符串的长度)然后你会发现答案就是ans加上每个后缀与最长后缀的最长公共前缀的长度代码: 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define maxn 100010 7 int wa[maxn],wv[maxn],wb[maxn],wq[maxn]; 8 int height[maxn],rank[maxn 阅读全文

posted @ 2013-08-25 16:58 GyyZyp 阅读(227) 评论(0) 推荐(0) 编辑

上一页 1 ··· 4 5 6 7 8 9 10 11 12 13 下一页

导航