這題的話,我能玩一年
今天做了很多遞推的題,這題無疑是最複雜的
其實可以看出來,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 #includeview code#include
#include
using
namespace
std;
intmain()
for(int i=3;i<26;i++)
//cout << "hello world!" << endl;
return0;
}
小紅的難題《遞推》
題意 五個數 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 三色塗每個格仔,每格塗一色,要求任何...