递推总结和模板

1.不管什么类型的递推题目,总是有规律可循的。然而这个时候切记不可写成递归形式,递归算法最大特点就是有一个回溯的过程,必然是要超时的,要解决超时问题,还需要转化为递推算法。而递推算法与递归算法正好相反,递推是从后往前计算,而递推正好是从前往后计算。

2.所做题目递推公式总结:

  2.1 骨牌方格,dp[ i ] = dp [i-1] + dp[ i-2 ]; https://blog.csdn.net/ssyitwin/article/details/80084346  

   2.2  母牛的故事,dp[ i ] = dp [i-1] + dp[ i-3 ]; 

     https://blog.csdn.net/ssyitwin/article/details/80084725  

  2.3  Tiling_easy version,dp[i]=dp[i-1]+dp[i-2]*2,https://blog.csdn.net/ssyitwin/article/details/80085529

  2.4 统计问题,a[i]=a[i-1]*2+a[i-2]; https://blog.csdn.net/ssyitwin/article/details/80098822

观察不难发现,都是该项与前两项之间的关系。

3.模板总结:

#include
#include
using namespace std;
long long dp[37];
void f()
{
     dp[1],dp[2]的初始值;
    for(int i=3;i<=30;i++)
        所满足的关系式;
}
int main()
{
    int t;
    int n;
    f();
    cin>>t;
    while(t--)
    {
        cin>>n;
        cout<

你可能感兴趣的:(ACM,知识点,递推)