题目描述

在边长为9的正方形培养皿中,正中心位置有m个细菌。假设细菌的寿命仅一天,但每天可繁殖10个后代,而且这10个后代,有两个分布在原来的单元格中,其余的均匀分布在其四周相邻的八个单元格中。求经过n天后,细菌在培养皿中的分布情况。

输入格式

输入为两个整数,第一个整数m表示中心位置细菌的个数(2 ≤ m ≤ 30),第二个整数n表示经过的天数(1 ≤ n ≤ 4)

输出格式

输出九行九列整数矩阵,每行的整数之间用空格分隔。整个矩阵代表n天后细菌在培养皿上的分布情况。

输入样例

2 1

输出样例

0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 2 2 2 0 0 0
0 0 0 2 4 2 0 0 0
0 0 0 2 2 2 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0

下面我会提供2中解法,虽然大同小异,但都有多少的不同

解法1

#include <iostream>
#include<cstdio>
using namespace std;
int be,day;     //be为最开始正中心的细菌数
int a[5][10][10];   //3维数组,用来存放每一天的情况
int main(){int i,j,k;cin>>be>>day;a[0][4][4]=be;   //初始化,最开始的正中间有be个细菌for(k=0;k<day;k++){for(i=1;i<8;i++){for(j=1;j<8;j++){int tmp=a[k][i][j];//更新下一天a[k+1][i][j]+=tmp*2;     //原位a[k+1][i-1][j]+=tmp;     //上a[k+1][i-1][j-1]+=tmp;   //左上a[k+1][i-1][j+1]+=tmp;   //右上a[k+1][i][j-1]+=tmp;     //左a[k+1][i][j+1]+=tmp;     //右a[k+1][i+1][j]+=tmp;     //下a[k+1][i+1][j-1]+=tmp;   //左下a[k+1][i+1][j+1]+=tmp;   //右下}}}//输出for(i=0;i<9;i++){for(j=0;j<9;j++)cout<<a[day][i][j]<<" ";cout<<endl;}return 0;
}

这个方法是将每一天的状况存在三维数组里,第k天的x行y列存在:

a[k][x][y]

程序会将每一天的数据存起来,所以空间复杂度会比较高,天数多了会炸 。

解法2

#include <iostream>
#include<cstdio>
using namespace std;
int be,day;
int a[10][10],b[10][10];
void b0(){      //将b数组归零int i,j;for(i=0;i<9;i++)for(j=0;j<9;j++)b[i][j]=0;return;
}
int main(){int i,j,k;cin>>be>>day;a[4][4]=be;      //初始化for(k=0;k<day;k++){for(i=1;i<8;i++){for(j=1;j<8;j++){//处理,详见上int tmp=a[i][j];b[i][j]+=tmp*2;b[i-1][j]+=tmp;b[i-1][j-1]+=tmp;b[i-1][j+1]+=tmp;b[i][j-1]+=tmp;b[i][j+1]+=tmp;b[i+1][j]+=tmp;b[i+1][j-1]+=tmp;b[i+1][j+1]+=tmp;}}for(i=0;i<9;i++){for(j=0;j<9;j++){a[i][j]=b[i][j];    //将a与b中的数据互换}}b0(); //归零}for(i=0;i<9;i++){    //输出for(j=0;j<9;j++)cout<<a[i][j]<<" ";cout<<endl;}return 0;
}

这个方法是用类似车轮的方法,在b数组中计算,再将b中的数据复制到a里。因为有多层循环嵌套,所以时间复杂度会很高,容易TLE(勉强能AC)

两种方法各有取舍,供大家参考

小结

这道题我个人觉得不太难,但是写了好几遍才AC,有些边界条件没有处理清,大家要注意。

PS:第二篇题解

C++_细菌的繁殖与扩散_题解相关推荐

  1. 【c++细菌的繁殖与扩散】毒瘤题目的题解与说明

    好吧,可能对于各位神犇来说这题也没什么毒性..但我在这题里面挣扎了很久啊啊啊!!!还是感谢我的同桌教会了我这道题QWQ 问题 M: 细菌的繁殖与扩散 题目描述 在边长为9的正方形培养皿中,正中心位置有 ...

  2. OpenJudge NOI 1.8 15:细菌的繁殖与扩散

    [题目链接] OpenJudge NOI 1.8 15:细菌的繁殖与扩散 [题目考点] 1. 二维数组 2. 方向数组 在一个矩阵中,当前位置为(sx, sy),将下一个位置与当前位置横纵坐标的差值记 ...

  3. 15_细菌的繁殖与扩散

    /*Name: 15_细菌的繁殖与扩散Copyright: Author: Date: 29-08-17 10:53Description: 15_细菌的繁殖与扩散 查看 提交 统计 提问 总时间限制 ...

  4. 1611:细菌的繁殖与扩散

    描述 在边长为9的正方形培养皿中,正中心位置有m个细菌.假设细菌的寿命仅一天,但每天可繁殖10个后代,而且这10个后代,有两个分布在原来的单元格中,其余的均匀分布在其四周相邻的八个单元格中.求经过n( ...

  5. 实验室装水的容器叫什么_实验室常见水的种类_生命之源水

    实验室常见水的种类_生命之源水 2.实验室常见水的种类 升腾后的凝结--蒸馏水 蒸馏水是指经过蒸馏处理后的水.这种水常用于试验,人们一般都认为蒸馏水是纯净物. 蒸馏水有它独特的功能,它能去除自来水内大 ...

  6. 计算机编程导论python程序设计答案-学堂在线_计算机科学与Python编程导论_作业课后答案...

    学堂在线_计算机科学与Python编程导论_作业课后答案 答案: 更多相关问题 近代中国完全沦为半殖民地半封建社会的标志是:A.<马关条约>B.<辛丑条约>C.<凡尔赛和 ...

  7. 白光干涉衍射实验的计算机仿真,白光干涉_衍射实验的计算机仿真_蓝海江.pdf

    白光干涉_衍射实验的计算机仿真_蓝海江 28 12 实 验 室 研 究 与 探 索 V o.l 28 No. 12 2009 12 RESEARCH AND EXPLORAT ION IN LABOR ...

  8. python判断题题库大数据技术_智慧树_大数据分析的python基础_搜题公众号

    智慧树_大数据分析的python基础_搜题公众号 更多相关问题 社会公众可以查阅烟草专卖行政主管部门的监督检查记录.() 公民.法人或者其他组织不得利用自动售货机销售烟草制品.() 烟草广告中不得有下 ...

  9. 如何控制Yahoo! Slurp蜘蛛的抓取频度_国外博客资源站_百度空间

    如何控制Yahoo! Slurp蜘蛛的抓取频度_国外博客资源站_百度空间 如何控制Yahoo! Slurp蜘蛛的抓取频度 2009年08月13日 星期四 5:56 上周末豆瓣的阿北给我电话:最近你们雅 ...

最新文章

  1. 使用 jQuery Mobile 与 HTML5 开发 Web App (十八) —— HTML5 Web Workers
  2. 92款jQuery图片展示/幻灯插件开源软件
  3. c语言非法字符判别,98行的四则计算器.(支持括号)加入了非法字符的检测
  4. java 二维数组对角线_二维数组(矩阵)对角线输出
  5. 读《JavaScript权威指南》笔记(三)--对象
  6. 查看redis数据_关于 Redis 的一些新特性、使用建议和最佳实践
  7. PHP修改防火墙ip,利用防火墙进行同网段下的ip地址欺骗
  8. TwinCAT3 控制器PLC之间EAP通讯3-从机发送方式2
  9. Linux C/C++ 服务器/后端开发/后台开发学习路线
  10. 【SOT】SiamRPN代码笔记
  11. windows下使用endless报错:undefined: syscall.SIGUSR1
  12. 【Cf #502 H】The Films(莫队)
  13. A0/A1/A2/A3/A4图纸大小分别是多少
  14. Hyperic-Sigar简介
  15. 1582年日历怎么了_1582年日历图片
  16. Spring Security实现RememberMe功能以及原理探究
  17. 计算机组成原理乘法运算说明过程,计算机组成原理第二章 第8讲 定点乘法运算...
  18. Cisco2960 广播延迟问题解决?求助
  19. Exchange Online - Security Update安装完成后OWA无法使用的解决方案
  20. 使用Python分析《我不是药神》电影豆瓣评论

热门文章

  1. AppleWebKit/537.36(KHTML,likeGecko)与cdn讲解
  2. Leetcode算法——537、复数乘法
  3. 零基础C++学习(1)——数据类型、运算符和流程图
  4. 中国外包企业战略思考
  5. “张一鸣”为何突袭“王兴”
  6. 京东生鲜全品类爬虫--往期创作整理
  7. 基于多时间尺度滚动优化的多能源微网双层调度模型 多能源微网 代码主要做的是一个多能源微网的优化调度问题,首先对于下层多能源微网模型多时间尺度 滚动优化 微网双层模型 调度
  8. 基于Preevision的面向服务架构SOA和以太网通信设计方法
  9. 学习JSP——在虚拟机中建立一个JSP网页,通过Tomcat服务器发布,并通过虚拟机的宿主机浏览器访问虚拟机上所发布的JSP网页
  10. 如何将C盘数据移动到其他盘