遞推的複習(2)

2022-05-25 22:45:10 字數 2371 閱讀 7875

desctiption

一中 90 周年校慶,小林準備用一些白色、藍色和紅色的彩帶來裝飾學校超市的櫥窗,他希望滿足以下兩個條件:

(1) 相同顏色的彩帶不能放在相鄰的位置;

(2) 一條藍色的彩帶必須放在一條白色的彩帶和一條紅色的彩帶中間。

現在,他想知道滿足要求的放置彩帶的方案數有多少種。

例如,如圖 9.4-1 所示為櫥窗寬度n=3 的所有放置方案,共 4 種。

input

一行乙個整數 n,表示櫥窗寬度(或者說彩帶數目)。

output

一行乙個整數,表示裝飾櫥窗的彩帶放置方案數。

sample input

3
sample output

4
分析

這樣來想,設f[n]表示寬度為n的時候有這麼多種方案

1.考慮第n-1個為redorwhite,此時因為不一樣才可以連線著放,所以只有一種選擇

2.考慮第n-1個為blue,因為要求顏色不一樣才可以夾乙個藍色,所以還是只有一種選擇

所以實際上就是乙個斐波拉契數列,但是不同的,第一二項值都為2

code

/*

*彩帶,

*/#include#define maxi 50

#define int64 long long

using namespace std;

int64 f[maxi];

int main()

printf("%d",f[n]);

return 0;

}

description

地圖上有 n 個城市,乙隻奶牛要從 1 號城市開始依次經過這些城市,最終到達 n 號城市。但是這只奶牛覺得這樣太無聊了,所以它決定跳過其中的乙個城市(但是不能跳過 1 號和 n 號城市),使得它從 1 號城市開始,到達 n 號城市所經過的總距離最小。假設每乙個城市 i 都有乙個座標(x i ,y i ),從 (x 1 ,y 1 ) 的城市 1 到 (x 2 ,y 2 ) 的城市 2 之間的距離為 | x 1 -x 2 | + | y 1 -y 2 | 。

input

第 1 行 1 個正整數 n,表示城市個數。接下來的 n 行,每行 2 個數 x i 和 y i ,表示城市 i 的座標

output

第 1 行 1 個正整數 n,表示城市個數。接下來的 n 行,每行 2 個數 x i 和 y i ,表示城市 i 的座標

sample input

4

0 08 3

11 -1

10 0

sample ouput

14
分析

這乙個的話就是列舉跳過哪乙個點省去的路程最多

我不知道這和遞推有什麼關係

code

#include#define maxi 100003

#define int64 long long

using namespace std;

int64 f[maxi];

int n;

struct nodecities[maxi];

int main()

for(int i=2;i<=n-1;i++)

cout<

return 0;

}

遞推集合2

設 fi表示從一到 i 最少可以劃分的段數,fi min fbi 1 fci 1 1bi 表示以 i 結尾單調遞增的一段的起點,ci 表示以 i 結尾單調遞減的一段的起點 檢視 int n,last,a,b 100005 c 100005 f 100005 int main memset f,1e7...

遞推演算法(2)

有 2n 的乙個長方形方格,用乙個12 的骨牌鋪滿方格 編寫乙個程式,試對給出的任意乙個n n 0 輸出鋪法總數。演算法分析 1 當n 1時,只能是一種鋪法,鋪法總數有示為x1 1。2 當n 2時 骨牌可以兩個並列豎排,也可以並列橫排,再無其他方法,如下左圖所示,因此,鋪法總數表示為x2 2 3 當...

2016春季學習(2) 遞推

第乙個遞推還是蠻水的,雖然並不知道具體數學,但是還是水過去了。畫外 2011 alibaba cup campus contest。是不是比格很高啊。這裡面有乙個技巧 我們先假設,我們可以表示了1 n中的所有數,那麼下面,如果我們要去湊出n 1,有兩種情況,我們直接就有n 1的項,要麼就是沒有用光前...