博客
关于我
阿牛的EOF牛肉串
阅读量:742 次
发布时间:2019-03-21

本文共 734 字,大约阅读时间需要 2 分钟。

为了解决这个问题,我们需要计算满足特定条件的字符串数量。这些字符串的长度为n,每个位置只能是'E'、'O'或'F',并且不能出现连续的'O'。

方法思路

我们可以通过递推的方法来计算满足条件的字符串数量。具体来说,我们可以定义一个递推关系来计算长度为k的字符串数目,记为f(k)。通过分析,我们得到递推关系式:

  • f(k) = 2 * f(k-1) + 2 * f(k-2)

这个递推关系可以通过动态规划的方法来实现。我们首先计算基本情况,然后利用递推关系不断计算出更大的k值。

解决代码

#include 
using namespace std;int main() { int n; int a[41]; a[1] = 3; a[2] = 8; for (int i = 3; i <= 40; ++i) { a[i] = 2 * a[i-1] + 2 * a[i-2]; } while (cin >> n) { // 由于题目给出0 < n < 40,所以n的范围在1到39之间 int result = a[n]; cout << result << endl; } return 0;}

代码解释

  • 预计算数组:我们首先初始化一个数组a,其中a[1]和a[2]分别是长度为1和2时的字符串数量,分别为3和8。然后,通过递推关系式计算出长度到40时所有可能的字符串数量。
  • 处理输入和输出:读取每个输入的n值,并输出计算得到的满足条件的字符串数量。由于题目中给出n的范围在1到39之间,因此我们直接从预计算的结果中取出对应的值并输出。
  • 转载地址:http://gtagz.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现lfu cache缓存算法(附完整源码)
    查看>>
    Objective-C实现LFU缓存算法(附完整源码)
    查看>>
    Objective-C实现linear algebra线性代数算法(附完整源码)
    查看>>
    Objective-C实现linear congruential generator线性同余发生器算法(附完整源码)
    查看>>
    Objective-C实现linear discriminant analysis线性判别分析算法(附完整源码)
    查看>>
    Objective-C实现linear regression线性回归算法(附完整源码)
    查看>>
    Objective-C实现linear search线性搜索算法(附完整源码)
    查看>>
    Objective-C实现Linear search线性搜索算法(附完整源码)
    查看>>
    Objective-C实现LinearSieve线性素数筛选算法 (附完整源码)
    查看>>
    Objective-C实现LinkedListNode链表节点类算法(附完整源码)
    查看>>
    Objective-C实现LinkedList链表算法(附完整源码)
    查看>>
    Objective-C实现local weighted learning局部加权学习算法(附完整源码)
    查看>>
    Objective-C实现logistic regression逻辑回归算法(附完整源码)
    查看>>
    Objective-C实现logistic sigmoid函数(附完整源码)
    查看>>
    Objective-C实现longest Common Substring最长公共子串算法(附完整源码)
    查看>>
    Objective-C实现longest increasing subsequence最长递增子序列算法(附完整源码)
    查看>>
    Objective-C实现longestCommonSubsequence最长公共子序列算法(附完整源码)
    查看>>
    Objective-C实现LongestIncreasingSubsequence最长递增子序列算法(附完整源码)
    查看>>
    Objective-C实现lorenz transformation 洛伦兹变换算法(附完整源码)
    查看>>
    Objective-C实现Lower-Upper Decomposition上下分解算法(附完整源码)
    查看>>