HDU2569

来源:互联网 发布:stc单片机引脚功能图 编辑:程序博客网 时间:2024/06/01 14:19

这是一道很水的题目,主要是要找出其中的递推关系。

题目大意是:有三种颜色的珠子。现在给定一个数n,表示珠子个数,相邻的三个珠子,如果颜色各不相同,则表示不能用的方法。现在需要我们统计对于给定的n有多少种正确方法。

假设已知啊a[n-1], a[n-2],我们需要求的是a[n-3]。

第一种情况:

a[n-2]和a[n-1]的颜色相同,那么对于n就有三种颜色可以选:a[n] = a[n-2]*3;

第二种情况:

a[n-2]和a[n-1]的颜色不同,那么对于n可选的颜色就是两种:a[n] = (a[n-1]-a[n-2])*2;

最后把两种情况加起来。

ac代码是:

#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<iostream>int a[45];int main(){    int t, n;    a[1] = 3, a[2] = 9;    for(int i = 3; i<45; i++)        a[i] = a[i-1]*2+a[i-2];    scanf("%d", &t);    while(t--){        scanf("%d", &n);        printf("%d\n", a[n]);    }        return 0;}


0 0