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を覚えておいて、範囲外があるかどうか見てください.
コード:
原題: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;
}