zoukankan      html  css  js  c++  java
  • 01串 ---- 递推

    这是一个符合斐波纳契数列的dp问题,动态转移方程:dp[i]=dp[i-1]+dp[i-2];

          解释:长度为i的01串组成:长度为i-1的串末尾的0的个数*2+长度为i-1的串末尾的1的个数*1,而长度为i-1的末尾的0的个数等于长度为i-2的串的个数,等量替换以后就是上面的转移方程。

     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<math.h>
     4 #include<iostream>
     5 #include<limits.h>
     6 #include<algorithm>
     7 #include<queue>
     8 #include<vector>
     9 #include<set>
    10 #include<stack>
    11 #include<string>
    12 #include<sstream>
    13 #include<map>
    14 #include<cctype>
    15 using namespace std;
    16 int main()
    17 {
    18     int t,dp[45],n;
    19     scanf("%d",&t);
    20     dp[2]=3,dp[3]=5;
    21     for(int i=4;i<=40;i++)
    22         dp[i]=dp[i-1]+dp[i-2];
    23     while(t--)
    24     {
    25         scanf("%d",&n);
    26         printf("%d
    ",dp[n]);
    27     }
    28     return 0;
    29 }
  • 相关阅读:
    java操作练习
    java认知
    java了解
    抽象类及抽象类
    杨辉三角实例菱形实例
    案例分析之运行顺序
    Object类的方法,toString的重写.
    多态
    类的继承
    面对对象
  • 原文地址:https://www.cnblogs.com/A-FM/p/5457123.html
Copyright © 2011-2022 走看看