hdu 1297 遞推難題

2022-05-08 08:57:14 字數 997 閱讀 1256

這題的話,我能玩一年

今天做了很多遞推的題,這題無疑是最複雜的

其實可以看出來,2,3,4,5為一類,不妨定義為2型,1,6為一類,定義為1型

規定num[i]為結尾是i的凹槽的數量

我們可以能輕易的推出 sum = num[1]*2+num[2]*4

現在我們開始分析這個遞推式的構成

根據第n個凹槽前 能不能構成一把lock,我們將情況分為兩類

a:能構成lock

1.如果當前結尾為1類,我們用『1』分析好了(下面也是用1),n-1的結尾必然不能是『6』,因為1和6不能直接相連,根據題意就知道了,可以推出num1[i] = lock[i-1] - num1[i-1]

2.如果當前結尾為2類,那和n-1的結尾無任何關係,則num2[i] = lock[i-1]

b:加入n後才能構成lock

很容易推出前n-1應該有兩種種類,因為題目說了至少有三種種類的凹槽

1.如果當前結尾是『1』(1類),我們要分兩種討論,有『6』和無'6',至於原因,還是因為『6』不能放在n-1結尾處

a.取『6』

(哎,數學符號打不出來額,文字描述好了)

從剩下的4個內取1個,組合數為4,排列數為(2^(n-2)-1) 因為n-1處不能放『6』

b.不取『6』

從剩下的4個內取兩個,組合數為為6,排列數為(2^(n-1)-2)

2.如果當前是『2』(2類)

從剩下的5個內取兩個,但是1和6不能同時取,所以-1,則組合數為9,排列數為(2^(n-1)-2)

#include #include 

#include

#include

using

namespace

std;

intmain()

for(int i=3;i<26;i++)

//cout << "hello world!" << endl;

return0;

}

view code

小紅的難題《遞推》

題意 五個數 n,x,y,a,b n是台階總數,x,y是每步可以走x或者y步,但是一定要走到a,b台階上。思路 學長給的題解,遞推,稍微優化一點。重點在遞推 include include includeusing namespace std typedef long long ll int n,a...

遞推和遞迴 RPG難題

人稱 ac女之殺手 的超級偶像lele最近忽然玩起了深沉,這可急壞了眾多 cole lele的粉絲,即 可樂 經過多方打探,某資深cole終於知道了原因,原來,lele最近研究起了著名的rpg難題 有排成一行的 個方格,用紅 red 粉 pink 綠 green 三色塗每個格仔,每格塗一色,要求任何...

遞推和遞迴 RPG難題

人稱 ac女之殺手 的超級偶像lele最近忽然玩起了深沉,這可急壞了眾多 cole lele的粉絲,即 可樂 經過多方打探,某資深cole終於知道了原因,原來,lele最近研究起了著名的rpg難題 有排成一行的 個方格,用紅 red 粉 pink 綠 green 三色塗每個格仔,每格塗一色,要求任何...