遞推 鑰匙計數之一

2021-08-11 15:23:52 字數 603 閱讀 1699

題目位址

題目大意:一把鎖匙有n個槽,槽深為1,2,3,4。每鎖匙至少有3個不同的深度且至少有1對相連的槽其深度之差為3。求這樣的鎖匙的總數。

思路:這個題本來是在狀壓dp專項裡遇到的,光想狀壓dp了,,,搜了題解才知道是遞迴。。也算是個比較麻煩的遞迴了,分成兩個陣列關係,直接求難求,就轉化成總數,減去不符合條件的,就能得到符合的,**很好理解,就是自己做的話,很難想到遞推方程

**:#include#include#include#include#includeusing namespace std;

long long f[35],i,a[35],b[35],s,v;

int main()

{ cout<<"n=2: 0\n";

cout<<"n=3: 8\n";

s=64;v=8;

a[3]=14;b[3]=11;

for(i=4;i<=31;i++)

{s*=4;

v*=2;

a[i]=2*(a[i-1]+b[i-1]);

b[i]=2*a[i-1]+b[i-1];

f[i]=s-2*(a[i]+b[i])-v+2;

cout<<"n="<

遞迴與遞推 鑰匙計數之一

hdu 1438 一把鎖匙有n個槽,槽深為1,2,3,4。每鎖匙至少有3個不同的深度且至少有1對相連的槽其深度之差為3。求這樣的鎖匙的總數。input 本題無輸入 output 對n 2且n 31,輸出滿足要求的鎖匙的總數。sample output n 2 0 n 3 8 n 4 64 n 5 3...

hdu 1438 鑰匙計數之一

題意 略 題解 n 2 0 n 3 8 n 4 64 n 5 360 n 31 注 根據pku judge online 1351 number of locks或 xi an 2002 改編,在那裡n 16 分析 若x是鑰匙,則x加1,2,3,4.都是鑰匙則a i a i 1 4 若x不是鑰匙,加...

hdu 1438 鑰匙計數之一

problem acm.hdu.edu.cn showproblem.php?pid 1438 reference blog.csdn.net u010405898 article details 9530769 blog.csdn.net zoucharming article details 4...