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