OpenJudge NOI 1.8 16:矩阵剪刀石头布 c语言
描述
Bart的妹妹Lisa在一个二维矩阵上创造了新的文明。矩阵上每个位置被三种生命形式之一占据:石头,剪刀,布。每天,上下左右相邻的不同生命形式将会发生战斗。在战斗中,石头永远胜剪刀,剪刀永远胜布,布永远胜石头。每一天结束之后,败者的领地将被胜者占领。
你的工作是计算出n天之后矩阵的占据情况。
输入
第一行包含三个正整数r,c,n,分别表示矩阵的行数、列数以及天数。每个整数均不超过100。
接下来r行,每行c个字符,描述矩阵初始时被占据的情况。每个位置上的字符只能是R,S,P三者之一,分别代表石头,剪刀,布。相邻字符之间无空格。
输出
输出n天之后的矩阵占据情况。每个位置上的字符只能是R,S,P三者之一,相邻字符之间无空格。
样例输入
3 3 1 RRR RSR RRR
样例输出
RRR RRR RRR
#include <stdio.h>
#define N 105
int dir[4][2] = {{0,1},{0,-1},{1,0},{-1,0}}; //定义一个二维数组,表示四个方向的偏移量
int main()
{int r, c, n; //定义三个变量,分别表示行数、列数和操作次数char a[N][N], b[N][N]; //定义两个字符数组,分别表示原始矩阵和操作后的矩阵scanf("%d %d %d", &r, &c, &n); //输入行数、列数和操作次数for(int i = 1; i <= r; ++i) //遍历每一行for(int j = 1; j <= c; ++j) //遍历每一列scanf(" %c", &a[i][j]); //输入字符到矩阵中for(int k = 1; k <= n; ++k) //进行n次操作{for(int i = 1; i <= r; ++i) //遍历每一行{for(int j = 1; j <= c; ++j) //遍历每一列{b[i][j] = a[i][j];//默认和原来位置的一样for(int d = 0; d < 4; ++d)//看(i,j)周围有没有能胜过a[i][j]的出拳{int x = i + dir[d][0], y = j + dir[d][1]; //计算相邻位置的坐标if(a[x][y] == 'R' && a[i][j] == 'S') //如果相邻位置是石头,当前位置是剪刀,则将当前位置变为石头b[i][j] = 'R';else if(a[x][y] == 'S' && a[i][j] == 'P') //如果相邻位置是剪刀,当前位置是布,则将当前位置变为剪刀b[i][j] = 'S';else if(a[x][y] == 'P' && a[i][j] == 'R') //如果相邻位置是布,当前位置是石头,则将当前位置变为布b[i][j] = 'P';}}}for(int i = 1; i <= r; ++i)//复制b到afor(int j = 1; j <= c; ++j)a[i][j] = b[i][j];}for(int i = 1; i <= r; ++i) //输出操作后的矩阵{for(int j = 1; j <= c; ++j)printf("%c", a[i][j]);printf("\n");}return 0;
}
相关文章:
OpenJudge NOI 1.8 16:矩阵剪刀石头布 c语言
描述 Bart的妹妹Lisa在一个二维矩阵上创造了新的文明。矩阵上每个位置被三种生命形式之一占据:石头,剪刀,布。每天,上下左右相邻的不同生命形式将会发生战斗。在战斗中,石头永远胜剪刀,剪刀永远胜布&#…...
mysql 性能参数调优详解
1 优化连接池 连接池运行机制 MySQL连接器中的连接池,用以提高数据库密集型应用程序的性能和可扩展性,默认启用。MySQL连接器负责管理连接池中的多个连接,自动创建、打开、关闭和破坏连接,多个连接的创建,可满足多客户…...
基于.net framework4.0框架下winform项目实现寄宿式web api
首先Nuget中下载包:Microsoft.AspNet.WebApi.SelfHost,如下: 注意版本哦,最高版本只能4.0.30506能用。 1.配置路由 public static class WebApiConfig{public static void Register(this HttpSelfHostConfiguration config){// …...
Vue中项目进行文件压缩与解压缩 (接口返回文件的url压缩包前端解析并展示出来,保存的时候在压缩后放到接口入参进行保存)
安装 npm install pako在Vue组件中引入pako: import pako from pako;接口返回的url是这个字段 tableSsjsonUrl 其实打开就是压缩包const source await tableFileUrl ({ id: this.$route.query.id}); if(source.code 0) {this.titleName source.data.tableNam…...
Linux shell编程学习笔记31:alias 和 unalias 操作 命令别名
目录 0 前言1 定义别名2 查看别名 2.1 查看所有别名2.2 查看某个别名 2.2.1 alias 别名2.2.2 alias | grep 别名字符串2.2.3 使用 CtrlAltE 组合键3 unalias:删除别名4 如何执行命令本身而非别名 4.1 方法1:使用 CtrlAltE 组合键 && unalias4…...
Django JSONField/HStoreField SQL注入漏洞(CVE-2019-14234)
漏洞描述 Django 于2019年8月1日 日发布了安全更新,修复了 JSONField 和 HStoreField 两个模型字段的 SQL 注入漏洞。 参考链接: Django security releases issued: 2.2.4, 2.1.11 and 1.11.23 | Weblog | DjangoDjango JSONField SQL注入漏洞&#x…...
Unity中Shader的Standard材质解析(一)
文章目录 前言一、在Unity中,按一下步骤准备1、在资源管理面板创建一个 Standard Surface Shader2、因为Standard Surface Shader有很多缺点,所以我们把他转化为顶点片元着色器3、整理只保留主平行光的Shader效果4、精简后的最终代码 前言 在Unity中&am…...
5.1 Windows驱动开发:判断驱动加载状态
在驱动开发中我们有时需要得到驱动自身是否被加载成功的状态,这个功能看似没啥用实际上在某些特殊场景中还是需要的,如下代码实现了判断当前驱动是否加载成功,如果加载成功, 则输出该驱动的详细路径信息。 该功能实现的核心函数是NtQuerySys…...
Linux之高级IO
目录 IO基本概念五种IO模型钓鱼人例子五种IO模型高级IO重要概念同步通信 VS 异步通信阻塞 VS 非阻塞其他高级IO阻塞IO非阻塞IO IO基本概念 I/O(input/output)也就是输入和输出,在著名的冯诺依曼体系结构当中,将数据从输入设备拷贝…...
进程和线程的关系
⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 📀 收录专栏:JavaEE 💖 持续更文,关注博主少走弯路,谢谢大家支持 💖 进程&线程 1. 什么是进程PCB 2. 什么是…...
YOLOv5全网独家改进:NanoDet算法动态标签分配策略(附原创改进代码),公开数据集mAP有效涨点,来打造新颖YOLOv5检测器
💡本篇内容:YOLOv5全网独家改进:NanoDet算法动态标签分配策略(附原创改进代码),公开数据集mAP有效涨点,来打造新颖YOLOv5检测器 💡🚀🚀🚀本博客 YOLOv5+ 改进NanoDet模型的动态标签分配策略源代码改进 💡一篇博客集成多种创新点改进:NanoDet 💡:重点:更…...
原生DOM事件、react16、17和Vue合成事件
目录 原生DOM事件 注册/绑定事件 DOM事件级别 DOM0:onclick传统注册: 唯一(同元素的(不)同事件会覆盖) 没有捕获和冒泡的,只有简单的事件绑定 DOM2:addEventListener监听注册:可添加多个…...
基于HTML+CSS+JavaScript的登录注册界面设计
一、界面效果: 二、HTML代码: 登录注册html: 登录成功html: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <h1>登录成功!</h1> </body> <…...
BUUCTF [MRCTF2020]Ez_bypass 1
题目环境:F12查看源代码 I put something in F12 for you include flag.php; $flagMRCTF{xxxxxxxxxxxxxxxxxxxxxxxxx}; if(isset($_GET[gg])&&isset($_GET[id])) { $id$_GET[id]; $gg$_GET[gg]; if (md5($id) md5($gg) && $id ! $gg) { …...
基于Apache部署虚拟主机网站
文章目录 Apache释义Apache配置关闭防火墙和selinux 更改默认页内容更改默认页存放位置个人用户主页功能基于口令登录网站虚拟主机功能基于ip地址相同ip不同域名相同ip不同端口 学习本章完成目标 1.httpd服务程序的基本部署。 2.个人用户主页功能和口令加密认证方式的实现。 3.…...
大数据平台/大数据技术与原理-实验报告--部署全分布模式HBase集群和实战HBase
实验名称 部署全分布模式HBase集群和实战HBase 实验性质 (必修、选修) 必修 实验类型(验证、设计、创新、综合) 综合 实验课时 2 实验日期 2023.11.07-2023.11.10 实验仪器设备以及实验软硬件要求 专业实验室ÿ…...
手写字符识别神经网络项目总结
1.数据集 手写字符数据集 DIGITS,该数据集的全称为 Pen-Based Recognition of Handwritten Digits Data Set,来源于 UCI 开放数据集网站。 2.加载数据集 import numpy as np from sklearn import datasets digits datasets.load_digits() 3.分割数…...
八、Lua数组和迭代器
一、Lua数组 数组,就是相同数据类型的元素按一定顺序排列的集合,可以是一维数组和多维数组。 在 Lua 中,数组不是一种特定的数据类型,而是一种用来存储一组值的数据结构。 实际上,Lua 中并没有专门的数组类型…...
平凯星辰 TiDB 获评 “2023 中国金融科技守正创新扬帆计划” 十佳优秀实践奖
11 月 10 日,2023 金融街论坛年会同期举办了“第五届成方金融科技论坛——金融科技守正创新论坛”,北京金融产业联盟发布了“扬帆计划——分布式数据库金融应用研究与实践优秀成果”, 平凯星辰提报的实践报告——“国产 HTAP 数据库在金融规模…...
运算符展开、函数,对象,数组,字符串变化 集合
... 展开运算符 用于函数实参或者赋值号右边 console.log(...[1, 2, 3]) // 1,2,3console.log(Math.max(...[1, 2, 3]))//3 console.log(Math.max.apply(null, [1, 2, 3]))//3const o { a: 1, b: 2 }const obj { ...o, c: 3 }console.log(obj)//Object ... 剩余运算符 用于…...
Redis持久化:从AOF到RDB,如何实现数据不丢失?芈
Qt是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本笔记将重点介绍QSpinBox数值微调组件的常用方法及灵活应用。…...
公路地下病害检测仿真:如何用gprMax 3.0模拟水稳层空洞的雷达图谱
公路水稳层空洞的雷达图谱仿真与解译实战指南 清晨六点,某高速公路养护段的技术员小李正盯着车载探地雷达屏幕上一组异常反射波皱起眉头——这些不规则的双曲线信号,究竟是水稳层空洞还是电缆管线的回波?类似场景每天都在全国各地的道路检测现…...
避开Power BI数据导入的四大坑:从SQL Server连接到Excel表格的实战避坑指南
避开Power BI数据导入的四大坑:从SQL Server连接到Excel表格的实战避坑指南 当你第一次将SQL Server的销售数据与Excel的市场调研表格合并到Power BI时,那个红色感叹号就像一盆冷水浇下来——"查询超时"。这不过是数据工程师日常工作中的第一个…...
torchsparse安装指南:从基础到排坑全解析
1. torchsparse简介与环境准备 torchsparse是MIT Han Lab开发的高效点云处理神经网络库,特别适合处理3D点云数据。它通过稀疏张量表示大幅提升计算效率,在自动驾驶、机器人导航等领域应用广泛。我第一次接触这个库是在开发一个室内场景重建项目时&#…...
Seurat去批次整合实战:如何用多线程加速FindIntegrationAnchors处理大型单细胞数据集
Seurat多线程加速实战:突破大型单细胞数据集整合的性能瓶颈 当单细胞RNA测序技术遇上高通量时代,研究人员手中的数据集正以惊人的速度膨胀。面对数十万细胞的整合分析,传统的单线程处理模式往往让实验陷入漫长的等待——特别是当运行到FindIn…...
mysql在服务器间如何实现数据热迁移_利用主从复制无缝切换
能,但需严格控制主从延迟和切换时机:须确认Seconds_Behind_Master稳定为0超30秒、从库read_onlyON、binlog_formatROW;停写需应用层优雅断开并校验GTID或位点一致;切换应通过中间件而非直连,并重置从库配置。主从复制能…...
Serverless+WebAssembly:构建下一代高性能后端接口实战
随着云原生技术的普及,Serverless架构凭借按需计费、弹性伸缩的特性,成为后端接口开发的主流选择之一,但传统Serverless平台依赖Node.js、Python等预置语言环境,冷启动延迟高、资源隔离性弱的问题始终制约着其在高性能场景的应用。…...
AI开发-python-langchain框架(--langchain与milvus的结合 )诓
一、 什么是 AI Skills:从工具级到框架级的演化 AI Skills(AI 技能) 的概念最早在 Claude Code 等前沿 Agent 实践中被强化。最初,Skills 被视为“工具级”的增强,如简单的文件读写或终端操作,方便用户快速…...
大模型工程化必过门槛:为什么83%的AI团队在蒸馏阶段失败?(2024头部厂商蒸馏故障图谱)
第一章:大模型工程化中的模型蒸馏技术 2026奇点智能技术大会(https://ml-summit.org) 模型蒸馏是将大型教师模型(Teacher Model)的知识高效迁移至轻量级学生模型(Student Model)的关键工程手段,其核心目标…...
Java实战:从零构建一个支持微积分运算的科学计算器
1. 科学计算器的核心功能设计 构建一个支持微积分运算的科学计算器,首先要明确功能边界。基础功能包括四则运算、三角函数、指数对数等常规计算,而核心难点在于微积分功能的实现。我建议采用模块化设计思路,将计算器分为三个层次:…...
