HDu 2045容易シリーズ3-LELEのRPG難題(繰返し方程式)


本文はblog.csdn.net/svitterから
原題:http://acm.hdu.edu.cn/showproblem.php?pid=2045
标题:中国語は私が言うまでもないでしょう.
この問題の鍵は方程式の繰返しと誤ったテストデータにある.
まずこの問題は単純な置換群着色問題です
反転の問題を除いて、難しいのはP 197(離散数学、高等教育出版社)を見ることができます.
私はこのテーマをするときにまずf[1]に  = 3困った.お願い、全然問題に合わないでくれませんか-=1つの格子は首尾の色が違うと言えますか?
その後,繰返し方程式であるf[n]=f[n−1]+3*f[n−2]を書き間違え,f[n−1]の場合を一度多く考慮した−=である.
正しい方程式は,f[n]=f[n−1]+2*f[n−2],n>=4であるべきである.(f[1]=3という坑父の妨害を取り除いた.)
llnと書くのは範囲外を防ぐためです.書き終わったら、DEBUGを覚えておいて、範囲外があるかどうか見てください.
コード:
#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;
#define lln long long int

lln f[51];

void ace()
{
    memset(f, 0x3f, sizeof(f));
    int i;
    f[1] = 3;
    f[2] = 6;
    f[3] = 6;
    for(i = 4; i <= 50; i++)
    {
        f[i] = f[i - 1] + 2 * f[i - 2];
    }

    int t;
    while(~scanf("%d", &t))
    {
        printf("%I64d
", f[t]); } } int main() { ace(); return 0; }