摘要: 递归 : 后面的子问题由前面的子问题解来表示 f(n) = _f(n-1) f(n-2)等来表示动态规划:前面的解由后面的子问题解来选择,自底向上,后面的解层层向前 得到最前的解。 key:找到dp[n] 与 dp[n-1]的联系,也就是找到子问题之间的表达式! 阅读全文
posted @ 2010-02-21 15:40 forward power 阅读(778) 评论(0) 推荐(0) 编辑
摘要: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少? Input输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整数N(1 <= N <= 100),表示数塔的高度,接下来用N行数字表示数塔,其中第i行有个i个整数,且所有的整数均在区间[0,99]内。 从顶点出发时到底向左走还是向右走应取决于是从左走能取到最大... 阅读全文
posted @ 2010-02-20 17:03 forward power 阅读(865) 评论(0) 推荐(0) 编辑
摘要: Problem Description平面上有n条直线,且无三线共点,问这些直线能有多少种不同交点数。比如,如果n=2,则可能的交点数量为0(平行)或者1(不平行)。Input输入数据包含多个测试实例,每个测试实例占一行,每行包含一个正整数n(n<=20),n表示直线的数量.Output每个测试实例对应一行输出,从小到大列出所有相交方案,其中每个数为可能的交点数,每行的整数之间用一个空格隔开... 阅读全文
posted @ 2010-02-18 17:39 forward power 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 有排成一行的n个方格,用红(Red)、粉(Pink)、绿(Green)三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色.求全部的满足要求的涂法. 以上就是著名的RPG难题.solutions:也是一道递推找规律的题,首先易知f(1)=3;f(2)=6;f(3)=6;f(4)=18;现在考虑n>3的情况,若第n-1个格子和第一个格子不同,则为f(n-1);若第n-1个... 阅读全文
posted @ 2010-02-17 17:29 forward power 阅读(3455) 评论(0) 推荐(0) 编辑
摘要: 重要思想:以空间换取时间,大大提高程序效率!也就是用表(table)来代替 递归(效率很低)#include<iostream>using namespace std;int main(){ __int64 n[53] = {0,1,2,3},t = 0; for(int i = 4;i<=50;i++) { n[i] = n[i-1] + n[i-2]; } while(ci... 阅读全文
posted @ 2010-02-17 14:00 forward power 阅读(373) 评论(0) 推荐(0) 编辑