递归就是直接或间接调用自身。算法思想:原问题可分解子问题(必要条件),原与分解后的子问题相似(递归方程),分解次数有限(子问题有穷),最终问题可直接解决(递归边界),经典问题有:幂运算、阶乘、组合数、斐波那契数列、汉诺塔等。这里详细介绍:
快速幂的实现;
斐波那契数列的矩阵加速实现;...
分类:
其他好文 时间:
2014-08-17 21:26:22
阅读次数:
397
【椭圆的特征】 椭圆有2个焦点,椭圆上任意一点到2个焦点的距离是一个常量。 所以椭圆方程可以如下: 也可写成下式通过椭圆方程: 也可按照长短轴给出椭圆方程: 或者通过角度的方式给出方程: 椭圆按四象限对象,无法像圆一样八象限对称:
分类:
其他好文 时间:
2014-08-17 18:23:52
阅读次数:
210
【中点画圆算法】 此算是一种圆的光栅化算法。定义以下函数: 通过上述函数,可以得到点(x,y)与半径为r的圆的关系: 已知点(Xk,Yk),我们需要知道(Xk+1,Yk)、(Xk+1,Yk-1)哪一个更接近圆。决策方程如下: 如果Pk小于0,那么中点位于圆内,扫描线Yk上的像...
分类:
其他好文 时间:
2014-08-17 18:16:12
阅读次数:
236
【DDA算法】 Digital Differential Analyzer,DDA算法是一种线段扫描转换算法。(线段光栅化算法) DDA算法优缺点: 1、消除了直线方程中的乘法计算,而在x、y方向使用合适的增量。 2、取整操作耗时。参考:《计算机图形学》3.5.2 DDA算法
分类:
其他好文 时间:
2014-08-17 14:13:32
阅读次数:
230
一周总结树状dp:在一棵树上进行状态转移,一般在树上遍历的时候,有返回到父节点的有不需要返回的,有无根树的遍历(即任意一点都可作为一个根),但状态方程的转移还是从父结点到儿子节点的递归转移。Hdu1296题意:求任意一个点作为根,求该树的半径两次dfs第一次求出以该点为根的最大距离和次大距...
分类:
其他好文 时间:
2014-08-17 10:20:42
阅读次数:
205
题意:一条线上面有n个目标,每个目标有三个值,表示不取相邻的,取一个相邻的,取两个相邻的值,问你怎么选才能最大解题思路:每个点有个5种情况dp,dp状态转移方程在程序里,5种情况分别是 1) 不取 2) 取自己 3) 取自己和左边,4)取自己和右边,5)取自己和左右边解题代码: 1 Name: 12...
分类:
其他好文 时间:
2014-08-16 23:49:31
阅读次数:
272
两个整数数列a1,a2,…和b1,b2,….满足方程(an-an-1)(an-an-2)+(bn-bn-1)(bn-bn-2)=0,其中n=3,4,…。证明存在正整数k使得ak=ak+2014.[解]设在平面直角坐标系下Pn(an,bn)将(an-an-1)(an-an-2)+(bn-bn-1)(b...
分类:
其他好文 时间:
2014-08-16 19:43:00
阅读次数:
198
题目大意:
在一串数字中取出除了两端的两个数字,求出最小的代价,代价就是每取出一个数,都要加上它与它相邻的两个数的积。
思路分析:
状态方程 :dp [i] [j] 是区间 [i , j] 已经全部取完,只剩下 i j所剩的最小代价。
状态转移 :dp [i][j] = min (dp [i][j], dp[i][k] + dp[k] [j] + a[i]*a[k]*a[j]) ....
分类:
其他好文 时间:
2014-08-16 17:11:00
阅读次数:
230
今天下午大帝讲的,我以前也不懂,所以也就跟着学学了,把中间的那个状态转移方程学错了好几次,于是就wa了
好几发。
#include
#include
#include
#define maxn 200010
using namespace std;
int a[maxn],m,n,b[maxn],fl[maxn][50],fr[maxn][50];
void solve()
{...
分类:
其他好文 时间:
2014-08-15 21:13:19
阅读次数:
189
题目大意:
两种括号匹配,求最长的匹配长度。
思路分析:
状态方程:dp [i][j] 表示区间 i ~ j 之间最长的匹配长度。
转移方程:dp [i][j] = max (dp[i+1][j] , dp[i] [j-1 ] , dp[i+1][k-1] + dp[k+1][j] +2 (条件是i ,k 位置匹配))
#include
#include
#incl...
分类:
其他好文 时间:
2014-08-15 18:01:59
阅读次数:
184