Glenbow Museum 組合數思維題

2021-08-17 17:49:10 字數 1596 閱讀 3489

問題描述

卡城著名的格林堡博物館是加拿大西部最大的博物館,展品涵蓋了藝術、文化史以及礦物學。如今乙個全新的展區正在被布置,它是專門為你這樣傑出的程式猿(媛)打造的。不幸的是,由於空間不足,博物館打算建造一棟新的建築來重新安置這個展區。

新的建築的尺寸和容量將不同於原始的建築,但是所有樓層的設計都是直角多邊形。乙個直角多邊形是內角均為90°或270°的多邊形。如果我們記90°角為r(right)、270°角為o(obtuse),那麼乙個只包含r和o的字串能夠粗略的表示乙個直角多邊形。比如,乙個矩形(圖形1)就是最簡單的直角多邊形,它能夠用rrrr來描述(內角按逆時針排列,起始角任意)。同樣地,乙個十字形直角多邊形(圖形2)能夠用rrorrorrorro、rorrorrorror或者orrorrorrorr來描述。這些序列被稱為角序列。

當然,乙個角序列不一定能完全對應乙個形狀的多邊形,因為它沒有說明邊長。並且乙個角序列不一定能描述乙個合法的直角多邊形(比如rrror)。

為了把事情搞得更麻煩,博物館並不接受所有的樓層設計。乙個博物館儲存了許多價值連城的物品,它們必須要被看守著。出於對成本的考慮,乙個樓層最多只能有乙個保安。所以只有滿足以下要求的樓層設計能被接受:存在乙個地點使得乙個保安能監視到整個樓層。因此乙個角序列能被接受,當且僅當它描述了乙個能夠被接受的多邊形。注意圖形2的十字形直角多邊形能夠被站在中心的保安完全監視,所以它是被接受的,因此角序列rrorrorrorro是被接受的,即使它也能夠描述其他不能被乙個保安監視的多邊形。

請幫助新建築的設計師確定有多少給定長度的能夠被接受的角序列。

輸入格式

輸入檔案包含多組測試資料。每組資料一行,包含乙個正整數 l (1 <= l <= 1000),表示給定的角序列長度。

輸入檔案以僅包含0的一行結束。

輸出格式

對於每一組資料,輸出一行,包含測試資料編號(從1開始),之後為給定長度的被接受的角序列的個數。具體格式參考樣例輸出。

樣例輸入4

6 0樣例輸出

case 1: 1

case 2: 6

資料規模和約定

按題目描述所示。

具體要求就是o不能連放,而且想要滿足條件,我們需要保證只有4個o即可.這樣保證向內,能夠完全檢測到。

對於n序列,我們可以有(n+4)/2個r,設為y。 我們設

我們有兩種方法。

第乙個就是1,3,5,7,9這樣固定r,往中間插入o, 即c(y,4)。

第二種是我們在1號位置放了o,那麼最後乙個位置必須為r。所以c(y-1,4)。這裡放4是因為1號位置不確定放哪個。

#include

#include

#include

#include

using namespace std;  

long long c(long long n,long long m)

return (a/b);

} int main()

else if(n==4)

else

u++;

cout << "case "<< u << ": ";

cout

}

演算法訓練 Glenbow Museum

問題描述 卡城著名的格林堡博物館是加拿大西部最大的博物館,展品涵蓋了藝術 文化史以及礦物學。如今乙個全新的展區正在被布置,它是專門為你這樣傑出的程式猿 媛 打造的。不幸的是,由於空間不足,博物館打算建造一棟新的建築來重新安置這個展區。新的建築的尺寸和容量將不同於原始的建築,但是所有樓層的設計都是直角...

藍橋杯 演算法訓練 Glenbow Museum

資料規模和約定 按題目描述所示。問題描述 卡城著名的格林堡博物館是加拿大西部最大的博物館,展品涵蓋了藝術 文化史以及礦物學。如今乙個全新的展區正在被布置,它是專門為你這樣傑出的程式猿 媛 打造的。不幸的是,由於空間不足,博物館打算建造一棟新的建築來重新安置這個展區。新的建築的尺寸和容量將不同於原始的...

藍橋杯 演算法訓練 Glenbow Museum

問題描述 卡城著名的格林堡博物館是加拿大西部最大的博物館,展品涵蓋了藝術 文化史以及礦物學。如今乙個全新的展區正在被布置,它是專門為你這樣傑出的程式猿 媛 打造的。不幸的是,由於空間不足,博物館打算建造一棟新的建築來重新安置這個展區。新的建築的尺寸和容量將不同於原始的建築,但是所有樓層的設計都是直角...