本文共 749 字,大约阅读时间需要 2 分钟。
为了解决这个问题,我们需要计算满足特定条件的字符串数量。这些字符串的长度为n,每个位置只能是'E'、'O'或'F',并且不能出现连续的'O'。
我们可以通过递推的方法来计算满足条件的字符串数量。具体来说,我们可以定义一个递推关系来计算长度为k的字符串数目,记为f(k)。通过分析,我们得到递推关系式:
这个递推关系可以通过动态规划的方法来实现。我们首先计算基本情况,然后利用递推关系不断计算出更大的k值。
#includeusing 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;}
转载地址:http://gtagz.baihongyu.com/