杭电里面水题的RPG问题
2015-05-29 23:34
288 查看
问题基本上就是这样:一行方格用red.pink,green三种颜色图,但是有个条件就是相邻的两个方格颜色不能相同。
这个明显的就是递归的问题。
//用递归的方法这样考虑:
//f(n) = (m-1)*a(n) + (m-2)*b(n);
//a(n)代表第1格与第n-1格颜色颜色相同的种类数;
//b(n)代表第1格与第n-1格颜色颜色不相同的种类数,即f(n-1);
//a(n)中的第n-2格一定与第一格颜色不同,所以a(n)=f(n-2);
//所以有递推式 f(n) = (m-2)*f(n-1) + (m-1)*f(n-2);
//但是要注意n<=3时不满足递推关系,
//因为此时a(n)不合法
这个明显的就是递归的问题。
//用递归的方法这样考虑:
//f(n) = (m-1)*a(n) + (m-2)*b(n);
//a(n)代表第1格与第n-1格颜色颜色相同的种类数;
//b(n)代表第1格与第n-1格颜色颜色不相同的种类数,即f(n-1);
//a(n)中的第n-2格一定与第一格颜色不同,所以a(n)=f(n-2);
//所以有递推式 f(n) = (m-2)*f(n-1) + (m-1)*f(n-2);
//但是要注意n<=3时不满足递推关系,
//因为此时a(n)不合法
相关文章推荐
- 深入理解C++的动态绑定和静态绑定
- C++作业第四章实验4
- c++14现行标准
- 由C/C++编译的程序占用的内存分类
- 【C++】基于特征向量的KNN分类算法
- 对C++中迭代器的分类的认识
- C++11新特性
- c++重载运算符@
- 【学习笔记】【C语言】常量
- c++对数组的引用
- 【Jump Game II 】cpp
- C++函数模板
- 黑马程序员 C语言:指针的概念
- 黑马程序员 C语言:循环语句
- c++ for loop demo
- c++中__declspec用法总结
- C++第四章实验3
- C++字符串旋转3种方法实现
- 3d数学基础-RotationMatrix-惯性坐标系到物体坐标系,物体坐标系到惯性坐标系-用C++代码实现
- 基类指针转换为子类指针,子类指针转换为基类指针(转载)