hdu 1438 鑰匙計數之一

2021-06-26 07:56:27 字數 856 閱讀 4078

題意:略~~~~

題解: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不是鑰匙,加上2,3。就是鑰匙了,這x是由1和4組成。但是要減去x是全1或者全4。a[i]+=(2^i-1-2)*2;

若x不是鑰匙,加上1,4就是鑰匙但是要減去x是由1和4組成。還要除去b[i-1],表示以1和4為結尾的個數,因為i的位置是1和4,i-1的位置就必修是4和1來配對,但是前面的計算,可能會造成i-2的位置有1和4,這樣就不符合x不是鑰匙,而且什麼當x是鑰匙的時候,已經算了一次,所以要除去i-1位置以1和4結尾的。

temp=(4^i-2-2^i-2)*2-b[i-1].

而此時,b[i]=a[i-1]*2+temp,a[i-1]*2是i-1是鑰匙,然後加上1和4,temp上面本來就是結尾加上1和4.

#include#include#include#include#includeusing namespace std;

typedef __int64 ll;

ll a[32],b[32];

// a[i] 表示是鑰匙的個數,b[i] 表示 是鑰匙但是以1或4結尾的鑰匙數

ll pow(int a,int b)

return sum;

}int main()

for(int i = 2;i < 32;i++)

return 0;

}

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...

鑰匙計數之一 HDU 1438 (狀壓DP)

一把鎖匙有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 360 n 31 注...

杭電OJ 1438 鑰匙計數之一

這個題目主要是數學推理。假設one i two i three i four i 分別表示一共有i個槽的情況下第乙個槽為1 2 3 4的情況,lock i 表示有i個槽的情況下鎖匙的個數,容易得到lock i one i two i three i four i 另外可以知道one i 和four ...