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

2021-10-03 06:50:00 字數 849 閱讀 2600

一把鎖匙有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: ...

注:根據pku judge online 1351 number of locks或 xi'an 2002 改編,在那裡n<=16

題意:中文題,不過多說題意。

思路:這道題的話,因為每個槽有4種深度,所以一共有2^4種狀態。然後開4維來儲存每一次的狀態:dp[ 第幾個槽 ][ 當前狀態 ][ 末尾深度 ][ 是否符合要求 ]即可。

ac**:

#include typedef long long ll;

const int maxx=10010;

const int inf=0x3f3f3f3f;

using namespace std;

ll dp[32][1<<4+5][4][2];//第幾個槽,槽的狀態,最後乙個槽的深度,是否已經符合要求

int num[20];

int main()}}

printf("n=%d: %lld\n",i,cnt);

}return 0;

}

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

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