rabbit

  1. #include<iostream>  
  2. #include <vector>  
  3. #include <algorithm>  
  4. using namespace std;  
  5.    
  6. struct Rabbit  
  7. {  
  8.     int age;  
  9.     int maxAge;  
  10. };  
  11.   
  12. void Age(vector<Rabbit> &res) {  
  13.     for (vector<Rabbit>::iterator it = res.begin(); it != res.end(); it++) {  
  14.         it->age++;  
  15.     }  
  16. }  
  17.   
  18. void Dead(vector<Rabbit> &res) {  
  19.     for (vector<Rabbit>::iterator it = res.begin(); it != res.end();) {  
  20.         if (it->age >= it->maxAge)  
  21.             it = res.erase(it);  
  22.         else  
  23.             it++;  
  24.     }  
  25. }  
  26.   
  27. void Broth(vector<Rabbit> &res, int x) {  
  28.     vector<Rabbit>Tmp;  
  29.     for (vector<Rabbit>::iterator it = res.begin(); it != res.end(); it++) {  
  30.         if (it->age >= 2 && it->age < it->maxAge)  
  31.         {  
  32.               
  33.             Rabbit tmp = { 0,x };  
  34.             Tmp.push_back(tmp);  
  35.         }  
  36.     }  
  37.     for (auto x : Tmp)  
  38.         res.push_back(x);  
  39. }  
  40.   
  41.   
  42. int main()  
  43. {  
  44.     int x, y;  
  45.     cin >> x >> y;  
  46.     Rabbit R1 = { 0,x };  
  47.     Rabbit R2 = { 0,x };  
  48.     vector<Rabbit> res;  
  49.     res.push_back(R1);  
  50.     res.push_back(R2);  
  51.     for (int i = 1; i <= y; i++) {  
  52.         Age(res);  
  53.         Dead(res);  
  54.         Broth(res,x);  
  55.         if (res.size() > 20) {  
  56.             res.erase(res.begin());  
  57.             res.erase(res.begin());  
  58.             res.erase(res.begin());  
  59.             res.erase(res.begin());  
  60.         }  
  61.     }  
  62.     int num = 0;  
  63.     for (auto x : res)  
  64.         num += x.age;  
  65.     cout << num << endl;  
  66. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值