洛谷-P2437 蜜蜂路線
阿新 • • 發佈:2020-12-13
洛谷-P2437 蜜蜂路線
題目描述
一隻蜜蜂在下圖所示的數字蜂房上爬動,已知它只能從標號小的蜂房爬到標號大的相鄰蜂房,現在問你:蜜蜂從蜂房 \(m\) 開始爬到蜂房 \(n\),\(m<n\),有多少種爬行路線?(備註:題面有誤,右上角應為 \(n-1\))
輸入格式
輸入 \(m,n\) 的值
輸出格式
爬行有多少種路線
輸入輸出樣例
輸入 #1
1 14
輸出 #1
377
說明/提示
對於100%的資料,\(M,N\le 1000\)
C++程式碼
#include <iostream> #include <cstring> using namespace std; string add(string x, string y) { int lenx = x.size(); int leny = y.size(); if (lenx > leny) for (int i=0; i<lenx-leny; ++i) y = '0' + y; else for (int i=0; i<leny-lenx; ++i) x = '0' + x; int jw = 0; for (int i=max(lenx, leny)-1; i>=0; --i) { x[i] += (y[i] - '0') + jw; jw = (x[i] - '0') / 10; x[i] = (x[i] - '0') % 10 + '0'; } if (jw != 0) x = char(jw + '0') + x; return x; } int main() { int m, n; cin >> m >> n; string a[n+1]; a[m] = a[m+1] = "1"; for (int i=m+2; i<=n; ++i) a[i] = add(a[i-1], a[i-2]); cout << a[n] << endl; return 0; }