1 条题解
-
0
#include <iostream> #include <vector> using namespace std; int main() { int x, y, z; cin >> x >> y >> z; // adults 存储每月成虫数量,eggs 存储每月新产卵数量 vector<long long> adults(z + 2, 0); vector<long long> eggs(z + 2, 0); adults[1] = 1; // 初始第 1 个月,1 对成虫 for (int month = 2; month <= z + 1; ++month) { // 成虫 = 上月成虫 + 两个月前的卵(卵过 2 个月长成成虫) adults[month] = adults[month - 1] + eggs[month - 2]; // 成虫过 x 个月后,当月会产卵(month - x >=1 表示满足产卵周期) if (month - x >= 1) { eggs[month] = adults[month - x] * y; } } // 过 z 个月后,对应第 z+1 个月的成虫数量 cout << adults[z + 1] << endl; return 0; }
- 1
信息
- ID
- 318
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 5
- 已通过
- 4
- 上传者