【原理】 (1)next数组原理 (2)特殊情况的处理(巧妙增设哨兵) (3)递推法构造next[]表 【实现代码】 #include<iostream> #include<cstdio> #include<cstring> using namespace std; const int maxn = ...
                            
                            
                                分类:
编程语言   时间:
2018-05-05 21:13:14   
                                阅读次数:
207
                             
                    
                        
                            
                            
                                    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2084 Problem Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的:有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最 ...
                            
                            
                                分类:
其他好文   时间:
2018-04-01 13:09:48   
                                阅读次数:
103
                             
                    
                        
                            
                            
                                    //2040#include<iostream>#include<algorithm>#define MAXN 100using namespace std;//判断a的所有的真约数之和是否等于bint is_N(int a,int b){	int sum1 = 0;//记录a的真约数之和	for  ...
                            
                            
                                分类:
其他好文   时间:
2018-03-17 19:49:31   
                                阅读次数:
185
                             
                    
                        
                            
                            
                                    如果对于一个1000000级别的素数,这样做的时间复杂度是很高了。实际上有的算法,有一个递推式如下 它的推导过程如下,设,那么 对上式两边同时除,进一步得到 再把和替换掉,最终得到 初始化,这样就可以通过递推法求出模素数的所有逆元了。 另外模的所有逆元值对应中所有的数,比如... ...
                            
                            
                                分类:
其他好文   时间:
2017-10-12 15:44:59   
                                阅读次数:
134
                             
                    
                        
                            
                            
                                问题:假设一段楼梯共15个台阶,小明一步最多能上3个台阶,那么小明上这段楼梯一共有多少种方法? 解析:从第15个台阶上往回看,有3种方法可以上来(从第14个台阶上一步迈1个台阶上来,从第13个台阶上一步迈2个台阶上来,从第12个台阶上一步迈3个台阶上来),同理,第14个、13个、12个台阶都可以这样 ...
                            
                            
                                分类:
编程语言   时间:
2017-05-04 16:18:22   
                                阅读次数:
331
                             
                    
                        
                            
                            
                                本题应该有两种方法: 1.母函数法 2.递推法 母函数不了解,待充分了解之后,再进行补充! 这里为递推实现的方法: 思路: 定义:n为要拆分的整数; k为拆分的项数; f[n][k]代表 n的整数拆分中,最大项不超过k的方案数。 每一个整数n的拆分中,总有一项拆分为自己,即:n = n; 我们将其表 ...
                            
                            
                                分类:
其他好文   时间:
2016-11-26 14:30:08   
                                阅读次数:
136
                             
                    
                        
                            
                            
                                    题意:求中互质的数的个数,其中。 分析:因为,所以,我们很容易知道如下结论 对于两个正整数和,如果是的倍数,那么中与互素的数的个数为 本结论是很好证明的,因为中与互素的个数为,又知道,所以 结论成立。那么对于本题,答案就是 事实上只要把素数的逆元用exgcd求一求就好,其余并未用到 逆元递推法: 扩 ...
                            
                            
                                分类:
其他好文   时间:
2016-07-31 19:11:09   
                                阅读次数:
173
                             
                    
                        
                            
                            
                                    它的推导过程如下,设,那么 对上式两边同时除,进一步得到 再把和替换掉,最终得到 初始化,这样就可以通过递推法求出模奇素数的所有逆元了。 转自 http://blog.csdn.net/acdreamers/article/details/8220787 ...
                            
                            
                                分类:
编程语言   时间:
2016-05-14 22:50:47   
                                阅读次数:
149
                             
                    
                        
                            
                            
                                    解决动态规划问题的方法很多,现在先看看最容易想到的 递归法。 核心代码就那么一段: solve(i,j)就是节点(i,j)的最大值。 递推法:思想就是从头开始一层一层推,由于每个节点上一级(最上面一个节点除外)都有两个上级节点,所以dp[i][j]就可以使它等于本身加上上一级中较大的一个数,从而不断 ...
                            
                            
                                分类:
其他好文   时间:
2016-04-22 16:20:50   
                                阅读次数:
115
                             
                    
                        
                            
                            
                                题目大意:给出n,k和m,表示有n个人围成一个圈,从第m个人开始(m也要去掉),每次走k步删除掉,问最后剩下人的序号。解题思路:  数学递推 
分析: 
1 题目是一道变形的约瑟夫环变形问题 
2 网上看到一篇很好的数学递推法 
问题描述:n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数。求胜利者的编号。编号0-(n-1)是有意义的,因为要模n,所以用0-(...
                            
                            
                                分类:
其他好文   时间:
2015-07-14 18:06:29   
                                阅读次数:
98