【DP】平铺方案(ybtoj DP-1-5)
生活随笔
收集整理的這篇文章主要介紹了
【DP】平铺方案(ybtoj DP-1-5)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
平鋪方案
ybtoj DP-1-5
題目大意
求用1×21\times 21×2和2×22\times 22×2的瓦片平鋪2×n2\times n2×n矩形的方案數(shù)
輸入樣例
2 8 12 100 200輸出樣例
3 171 2731 845100400152152934331135470251 1071292029505993517027974728227441735014801995855195223534251數(shù)據(jù)范圍
0?n?2500\leqslant n\leqslant 2500?n?250
解題思路
對于2×22\times 22×2的瓦片只能直接放
而對于1×21\times 21×2的瓦片有兩種鋪法:
1.橫著放
2.豎著放兩個,變成2×22\times 22×2的瓦片
fi=fi?1+2×fi?2f_i=f_{i-1}+2\times f_{i-2}fi?=fi?1?+2×fi?2?
然后高精一下即可
代碼
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define ll long long using namespace std; int n, g, f[260][110]; int main() {f[0][1] = 1;f[1][1] = 1;for (int i = 2; i <= 250; ++i)//預處理{for (int j = 1; j <= 100; ++j){f[i][j] += f[i - 1][j] + f[i - 2][j] * 2;f[i][j + 1] = f[i][j] / 10;f[i][j] %= 10;}}while(~scanf("%d", &n)){g = 100;while(!f[n][g]) g--;for (int i = g; i > 0; --i)putchar(f[n][i] + 48);putchar(10);}return 0; }總結
以上是生活随笔為你收集整理的【DP】平铺方案(ybtoj DP-1-5)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小红花歌词 歌曲小红花的完整歌词
- 下一篇: 【矩阵乘法】沼泽鳄鱼(ssl 2511)