Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
105655 | 陈志轩 | 蜜蜂线路 | C++ | 通过 | 100 | 12 MS | 8148 KB | 1543 | 2023-10-07 13:48:48 |
#include<bits/stdc++.h> #define int long long using namespace std; namespace Fast{ inline long long fr(){ register long long x = 0,f = 1; static char c = getchar(); while (c < '0' || c > '9'){ if (c == '-'){ f = -1; } c = getchar(); } while (c >= '0' && c <= '9'){ x = (x << 1) + (x << 3) + (c ^ 48); c = getchar(); } return x * f; } inline void fw(long long x){ if (x == 0){ putchar('0'); return ; } if (x < 0){ x = -x; putchar('-'); } stack <char> s; while (x){ s.push((x % 10) + '0'); x /= 10; } while (!s.empty()){ putchar(s.top()); s.pop(); } } inline void CCF(int opt){ ios::sync_with_stdio(false); if (opt == 0){ cout.tie(0); return ; } if (opt >= 1){ cin.tie(0); } if (opt >= 2){ cout.tie(0); } } inline void DEBUG(){ puts("IAKIOI"); } } using namespace Fast; int dp[1005][1005]; void add(int a[],int b[]){ for (int i = 0;i <= 1001;i++){ a[i] += b[i]; a[i + 1] += (a[i] / 10); a[i] %= 10; } } signed main(){ CCF(2); int n,m; n = fr(),m = fr(); m = m - n + 1; n = 1; /* dp[1] = 1,dp[2] = 1; for (int i = 3;i <= m;i++){ dp[i] = dp[i - 1] + dp[i - 2]; } cout<<dp[m]; */ dp[1][0] = dp[2][0] = 1; for (int i = 3;i <= m;i++){ add(dp[i],dp[i - 1]); add(dp[i],dp[i - 2]); } int maxl = 1001; while (dp[m][maxl] == 0 && maxl >= 1){ maxl--; } for (int i = maxl;i >= 0;i--){ cout<<dp[m][i]; } return 0; }