北京大学程序设计实习2017年期末考试自解
1:蜜蜂
一开始想用广搜,结果递归算法爆TLE了,这时候不得不抱dp的大腿,记忆化就是香。
#include<iostream> #include<cstring> using namespace std; long long int way[51]; int main() { int T; cin >> T; while (T--) { int a, b; cin >> a >> b; memset(way, 0, sizeof(way)); way[a + 1] = 1; way[a + 2] = 2; if (b <= a + 2) { cout << 1 << endl; continue; } for (int i = a+3; i <= b; i++) { way[i] = way[i - 2] + way[i - 1]; } cout << way[b] << endl; } return 0; }