上海市计算机学会竞赛平台2020年4月月赛丙组永恒的生命游戏

题目背景

2020年4月11日,英国数学家 约翰·霍顿·康威(John Horton Conway)因为新型冠状病毒肺炎不幸逝世。他在群论、数论、代数、几何拓扑、理论物理、组合博弈论和几何等领域,都做出了重大贡献。他的离去是人类文明的损失。他最著名的发明就是生命游戏(Conway’s Game of Life)。

题目描述

生命游戏定义了一种细胞自动机。该自动机由一个网格组成,每个方格代表一个细胞,细胞有两种状态:生(黑色表示)或死(白色表示)。每个细胞在下个时刻的生死取决于当前时刻相邻的八个细胞的状态,具体规则如下:

  • 如果某个原本存活的细胞,周围恰好有 22 个 或 33 个活的细胞,那么在下个时刻,它会保持存活;
  • 如果某个原本存活的细胞,周围活的细胞小于 22 个或多于 33 个,那么它在下个时刻,会因孤独或拥挤而死亡;
  • 如果某个原本死亡的细胞,周围恰好有 33 个活的细胞,那么在下个时刻,它会变成活的细胞。

利用这些简单的规则,生命游戏将从一个时刻迭代到下一个时刻,呈现不同的演化形态。

第一种是稳定状态,细胞自动机从诞生起,布局稳定,没有任何变化。如下图所示

1586953880(1).png

第二种是振荡状态,细胞自动机反复在几种状态间振荡变化,如下图所示

1586978363(1).png

第三种是消亡状态,细胞自动机逐渐萎缩,如下图所示

1586978524(1).png

细胞自动机还有更多有趣的状态,比如繁衍或者移动,此处就不展开了。

给定一个规模为 n×mn×m 的细胞自动机,请判定它是否处于稳定状态。

输入格式

第一行:两个整数 nn 和 mm;
接下来有 n×mn×m 个字符,表示每个细胞是否存活:

  • 若处于存活状态,用 * 表示,
  • 若处于死亡状态,用 . 表示。
输出格式

若细胞自动机处于稳定状态,输出 Still life ,否则输出 Other

数据范围

1≤n,m≤1001≤n,m≤100

样例数据

输入:

4 4
....
.**.
.**.
....

输出:

Still life

输入:

3 4
.**.
*..*
.**.
 

输出:

Still life

输入:

2 3
...
.*.

输出:

Other

详见代码:

#include<bits/stdc++.h>
using namespace std;
int n,m,a[110][110];char t;
int main()
{cin>>n>>m;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){cin>>t;a[i][j]=(t=='*');}for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){int c=0;for(int x=i-1;x<=i+1;x++)for(int y=j-1;y<=j+1;y++)c+=a[x][y];c-=a[i][j];if(a[i][j]==1&&(c<2||c>3)||a[i][j]==0&&c==3){cout<<"Other";return 0;}}cout<<"Still life";return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/13548.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

SQLI LABS | Less-43 POST-Error Based-String-Stacked With Twist

关注这个靶场的其它相关笔记&#xff1a;SQLI LABS —— 靶场笔记合集-CSDN博客 0x01&#xff1a;过关流程 输入下面的链接进入靶场&#xff08;如果你的地址和我不一样&#xff0c;按照你本地的环境来&#xff09;&#xff1a; http://localhost/sqli-labs/Less-43/ 本关是堆…

UEFI Shell命令(二)

一、Shell 命令行选项 ​-b, -break 每页输出后暂停一会&#xff0c;即分页输出 -q, -quiet 抑制所有的输出 -sfo 标准格式输出 -t, -terse 简洁的输出 -v, -verbose 详细的输出 -&#xff1f; 帮助 二、特殊Shell命令 1、attrib 显示或更改文件或目录的属性 [a | -a] 设置…

【QT常用技术讲解】优化网络链接不上导致qt、qml界面卡顿的问题

前言 qt、qml项目经常会涉及访问MySQL数据库、网络服务器&#xff0c;并且界面打开时的初始化过程就会涉及到链接Mysql、网络服务器获取数据&#xff0c;如果网络不通&#xff0c;卡个几十秒&#xff0c;会让用户觉得非常的不爽&#xff0c;本文从技术调研的角度讲解解决此类问…

【C语言】程序性能优化——除法运算符

【C语言】程序性能优化——除法运算符 文章目录 [TOC](文章目录) 前言一、牛顿迭代法1、数学基础2、C代码3、实验 二、二分法1、数学基础2、C代码3、实验 三、参考资料总结 前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、牛顿迭代法 1、数学…

每日计划-1109

1. 完成 104. 二叉树的最大深度 class Solution { public:// 计算二叉树的最大深度的函数int maxDepth(TreeNode* root) {// 如果根节点为空&#xff0c;说明已经到达叶子节点的下一层&#xff0c;返回0&#xff08;这里代码中 return false 应该是错误的&#xff0c;应该是 r…

基于YOLOv5的人群密度检测系统设计与实现

大家好&#xff0c;本文将介绍基于改进后的YOLOv5目标检测模型&#xff0c;设计并实现人群密度检测系统。 使用YOLOv5的源代码&#xff0c;在此基础上修改和训练模型&#xff0c; 数据集选用crowdhuman数据集。对yolov5源码中的文件进行修改&#xff0c;更换主干网络、改进损失…

鸿蒙入门——ArkUI 自定义组件间的父子双向同步状态装饰器@Link语法(四)

文章大纲 引言一、组件间状态装饰器Link 父子双向同步1、使用规则2、支持的观察变化的场景和ArkUI 刷新UI3、Link变量值初始化和更新机制3.1、初始渲染&#xff1a;执行父组件的build()函数后将创建子组件的新实例。3.2、Link的数据源的更新&#xff1a;即父组件中状态变量更新…

【Android、IOS、Flutter、鸿蒙、ReactNative 】启动页

Android 设置启动页 自定义 splash.xml 通过themes.xml配置启动页背景图 IOS 设置启动页 LaunchScreen.storyboard 设置为启动页 storyboard页面绘制 Assets.xcassets 目录下导入图片 AppLogo Flutter 设置启动页 Flutter Android 设置启动页 自定义 launch_background.xm…

[SaaS] 数禾科技 AIGC生成营销素材

https://zhuanlan.zhihu.com/p/923637935https://zhuanlan.zhihu.com/p/923637935

前端开发中常用的包管理器(npm、yarn、pnpm、bower、parcel)

文章目录 1. npm (Node Package Manager)2. Yarn (Yarn Package Manager)3. pnpm4. Bower5. Parcel总结 前端开发中常用的包管理器主要有以下几个&#xff1a; 1. npm (Node Package Manager) 简介&#xff1a; npm 是 Node.js 的默认包管理器&#xff0c;也是最广泛使用的包…

【go从零单排】Random Numbers、Number Parsing

&#x1f308;Don’t worry , just coding! 内耗与overthinking只会削弱你的精力&#xff0c;虚度你的光阴&#xff0c;每天迈出一小步&#xff0c;回头时发现已经走了很远。 &#x1f4d7;概念 这里是引用 &#x1f4bb;代码 Random Numbers package mainimport ("fmt…

qt移植到arm报错动态库找不到

error while loading shared libraries: libAlterManager.so.1: cannot open shared object file: No such file or directory 通过设置环境变量 LD_LIBRARY_PATH就行了。 LD_LIBRARY_PATH是一个用于指定动态链接器在运行时搜索共享库的路径的环境变量。 例如&#xff1a; 前…

GoogleMIT:多智能体医疗决策框架MDAgents

|记昨日与国内某Top 1&2 医院科室老师及团队探讨技术、医学、信仰与责任而有感而发。 生成式基础大模型正在成为临床辅助甚至医学探索领域的宝贵工具。尽管我们在国内看到了很多企业或实验室联合医疗机构在如医疗记录生成、临床表型辅助诊疗、医疗知识问答交互、医院管理决…

【数据库】深入解析慢 SQL 的识别与优化策略

文章目录 什么是慢 SQL&#xff1f;慢 SQL 的危害如何检测分析慢 SQL使用 MySQL 慢查询日志利用 EXPLAIN 分析执行计划通过 Profiling 获取详细执行信息借助慢 SQL 收集分析平台 实际案例解析&#xff1a;600秒的慢 SQL 优化之旅问题描述初步分析优化步骤1. 优化 SQL 语句结构2…

高校大数据人工智能教学沙盘分享

大数据教学实训沙盘&#xff08;TipDM-SP&#xff09;是根据企业实际项目建设而成&#xff0c;并提供沙盘配套装置、软件以及教学实训资源。沙盘的作用主要有3个&#xff1a; 1、采集真实数据&#xff0c;解决教学中缺少真实数据的困扰&#xff1b; 2、形成从数据…

【C++】string模拟实现

各位读者老爷好&#xff0c;俺最近在学习string的一些知识。为了更好的了解string的结构&#xff0c;俺模拟实现了一个丐版string&#xff0c;有兴趣的老爷不妨垂阅&#xff01;&#xff01;&#xff01; 目录 1.string类的定义 2.模拟实现成员函数接口 2.1.constructor&am…

c_str()函数 string类型转换成char*类型 C++实现

问题&#xff1a;在 class 的构造函数中&#xff0c;如果我们在类中初始化了 char * 类型&#xff0c;在调用构造函数时&#xff0c;如果直接传入字符串( string )类型&#xff0c;编译器会提出如下警告&#xff1a; 想要消除这个警告&#xff0c;就需要将 string 类型的变量转…

【vue3文件上传同时出现两个提示框,一个提示成功,一个提示失败,一个是用写死的,一个是接口返回的】

文件上传同时出现两个提示框&#xff0c;一个提示成功&#xff0c;一个提示失败&#xff0c;一个是用写死的&#xff0c;一个是接口返回的 原因&#xff1a; 接口返回的是字符串code200" 把判断的code码改为字符串的就好了

选择哪种Facebook广告目标更有效

在Facebook广告投放中&#xff0c;广告目标的选择决定了投放效果和转化率&#xff0c;但很多人往往忽略了这一步的细节。今天&#xff0c;我们来一起看看Facebook广告目标有哪些&#xff0c;以及如何精准选择&#xff01; 1. 广告目标在投放中的重要性 广告目标不仅仅是一…

matlab实现主成分分析方法图像压缩和传输重建

原创 风一样的航哥 航哥小站 2024年11月12日 15:23 江苏 为了研究图像的渐进式传输技术&#xff0c;前文提到过小波变换&#xff0c;但是发现小波变换非常适合传输缩略图&#xff0c;实现渐进式传输每次传输的数据量不一样&#xff0c;这是因为每次变换之后低频成分大约是上一…