JC2:递推,递归与分治

递推,递归与分治[待完成]

递推的定义

定义:已知初始值F1,通过递推关系式Fn=g(Fn-1)求出最终结果Fn的递推方式称为顺推法;同理,把已知最终结果为Fn,通过递推关系式Fn-1=g'(Fn)求出初始值F1的递推方式称为倒推法。

模板:

f[0]=0; f[1]=1;

for(int i=1; i<=n; i++) f[i]=f[i-1]+f[i-2];

具体步骤

找到初始状态 找到递推公式 开始循环算

经典问题

抽屉原理 加法原理 乘法原理 容斥原理 卡特兰数

递归

递归算法

设一个未知函数f,用其自身构成的已知函数g来定义:

f(n)=g(n,f(n-1)) n>0

f(0)=a n=0

描述递归定义的函数或求解递归问题的过程称为递归算法

原文地址:https://www.cnblogs.com/2019computer/p/12324282.html

时间: 2024-11-07 01:13:34

JC2:递推,递归与分治的相关文章

递推递归小结

已经被递推递归虐了几天了,(┙>∧<)┙へ┻┻ 但是显而易见的是没有任何进展...作为一块并不Q弹好吃的连1116都不会写的蒟蒻突然饿了,我还能说什么呢. 所以只能给对面的一群大神跪了%%%%%%%%%%%%%orz 递推递归主要就是找思路,找到思路就并没有什么区别了. 但是我找不到思路啊 ╮(╯_╰)╭ 所以就找题解,但是递推专项找到的最齐的只有Pascal的代码,所以就看着Pascal的代码码了几道,于是到现在依然是明白了了几道题但是找不到规律一脸懵逼(=?ω?=)神圣与邪恶有汉化更新了呢

Shell Necklace (dp递推改cdq分治 + fft)

首先读出题意,然后发现这是一道DP,我们可以获得递推式为 然后就知道,不行啊,时间复杂度为O(n2),然后又可以根据递推式看出这里面可以拆解成多项式乘法,但是即使用了fft,我们还需要做n次多项式乘法,时间复杂度又变成O(n2 * log n),显然不可以.然后又利用c分治思维吧问题进行拆分问题但是,前面求出来的结果对后面的结果会产生影响,所以我们使用cdq分治思想来解决这个问题,时间复杂度变为O(n * log2n). #include<bits/stdc++.h> using namesp

HDU 2013(递推&amp;递归_D题)解题报告

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2013 ----------------------------------------------------------------------------------- 题意:每天吃掉一半再多一个,给出第几天吃到只剩一个,求开始时的数量. 思路:递推.按照每天的处理方式反向处理一下,最终得到结果. 代码: #include<cstdio> #include<cstring> #in

HDU 2045(递推&amp;递归_B题)解题报告

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2045 ----------------------------------------------------------------------------------- 题意:3种颜色,方格涂色,从左到右,最后一个方格颜色不能和第一个方格颜色相等,相邻颜色不能相同. 思路:最开始思路想简单了,以为第一个方格3种颜色,第二个方格到倒数第二个方格都是2种选择,最后一个方格一种选择.但是,这种递推需要

HDU 2044(递推&amp;递归_A题)解题报告

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2044 ------------------------------------------------------------------------------------ 题意:只能爬向+1或者+2的房间,求第a个房间到第b个房间的路线多少. 思路:递归,爬向第k个房间只能从第k-1或者k-2个房间爬动,所以相加递归即可. 注意: 递归的题目一般要用数组存上所求的解,防止给出较大值时造成的TLE

POJ 1644 放苹果 递推 递归

放苹果 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 28356   Accepted: 17939 Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. Input 第一行是测试数据的数目t(0 <= t <= 20).以下每行均包含二个整数M和N,以空格分开.1<=M,N<=10. Output 对

UVALive 7431(递推&amp;递归_C题)解题报告

题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5453 ----------------------------------------------------------------------------------------------------------------------------------

UVA 12034(递推&amp;递归_I题)解题报告

题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3185 -----------------------------------------------------------------------------------------------------------------------------------------

对递推和递归的理解

对递推和递归的理解 1.此问题能否用递推解决 我们以斐波拉契数列问题为例进行阐述,斐波拉契数列为0.1.1.2.3.5.8.13.21.-表现斐波拉契数列为瘦柱状图的形式,如下 我们现在所要解决的问题是求取第n个位置的数值,下面我们正式开始考虑能否用递推解决这个问题(关于递推和递归的区别,将会在下文阐述): 我们考察3号位置,我们发现3号位置的值依赖于1号位置和2号位置,即在1号位置的值和2号位置的值的基础上,我们再进行一些(一个)操作就可以得到3号位置的值.在本例中,这个操作为加法运算. 我们