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