zoukankan      html  css  js  c++  java
  • hdu 2047 简单递推公式

    很简单的地推公式问题,给一个n,在这n个位置上面放 'E' '0' 'F',这三个字符,问可以拼出多少不同的字符来,排除有‘0''O'相连的情况。

    当n位取'O'的时候,那么n-1位就只能去'E''F'这两种可能,对于后面n-2之后的位置就没有任何的限定了。。。

    所以情况是1*2*f[n-2];

    当n位去'E''F'时,那么对于n-1位置没有任何的限定。。。

    所以情况是2*f[n-1]

    综上所述:

    f[n]=2*(f[n-1]+f[n-2])

    接下来不说了...果断水题..

    View Code
     1  #include<iostream>
     2  #include<stdio.h>
     3  using namespace std;
     4  int main()
     5  {
     6     int n;
     7     __int64 dp[40];
     8     dp[1]=3,dp[2]=8;
     9     for(int i=3;i<=40;i++)dp[i]=2*(dp[i-1]+dp[i-2]);
    10     while(scanf("%d",&n)!=EOF)
    11     {                        
    12        printf("%I64d\n",dp[n]);
    13     }
    14     return 0;
    15  }
    16  
  • 相关阅读:
    第五章总结
    第二章总结
    第一章、基础知识总结
    实验 9 根据材料编程
    实验5
    汇编实验4
    实验 3 编程、编译、连接、跟踪
    实验 2 用机器指令和汇编指令编程
    汇编-实验一
    react面试笔录
  • 原文地址:https://www.cnblogs.com/nuoyan2010/p/2667088.html
Copyright © 2011-2022 走看看