B3917 [语言月赛 202401] 小跳蛙

OK 挠~ stop here~

好啊,现在呢,把手头的事情先放一放啊,我们来做道练习 OK?

好啊来:

小跳蛙

题目描述

有 𝑛−1 只小跳蛙在池塘中,依次被编号为 1,2,⋯ ,𝑛−1。池塘里有 𝑛 个位置,每一个位置上有一个数字 𝑎𝑖 。如果 𝑎𝑖=0,则表示这个位置是一个空位;否则表示这个位置上存在一个编号为 𝑎𝑖​ 的小跳蛙。

接下来的 𝑛−1 分钟,小跳蛙们将进行跳跃。第 𝑖 分钟,编号为 𝑖 的小跳蛙将跳到空位上。

请你输出 𝑛−1 分钟后池塘中每个位置的数字,即每个位置是否为空、小跳蛙编号是多少。

输入格式

输入共两行。

第一行一个整数 𝑛。
第二行 𝑛n 个整数 𝑎1,𝑎2,⋯ ,𝑎𝑛​。

输出格式

输出一行 𝑛n 个整数 𝑎1,𝑎2,⋯ ,𝑎𝑛​。 表示 n−1 分钟后池塘的状态。

输入输出样例

输入 #1

5
1 2 0 3 4

输出 #1

2 3 1 4 0

OK,我们的题目在黑板上也写完了

现在找个同学上黑板回答一下问题啊:

来,哪个坐在电脑边的同学;

啧啧啧,这都不会,我上课怎么讲的,坐,其他同学仔细听仔细看啊【吹小蜜蜂】

解题思路

这道题呢我们要知道,比如第一分钟,第一只小青蛙1需要跳到现在0的位置上;第二分钟,第二只小青蛙需要调到现在0的位置上;以此类推,直到第n-1分钟现在“池塘”里的小青蛙的位置。

现在我们把它分为两种思路:

思路1

梳理清思路后,我们现在需要知道两个点:

输入

首先是输入,题目中说输入两行,第一行输入位置数量,第二行输入详情;

我们可以得到:


int a[1000005]//此处要定义成全局变量,其余设立在主函数里
int  n;
cin>>n;
for(i=1;i<=n;i++)
{cin>>a[i];
}

关于位置的判断:

这里因为运行时间的原因,我选择再设置一个数组w,将其设1000005,并放置在全局变量里:

这个w数组只用来存储青蛙和空位的位置的

所以我们要在输入的时候将其存下;


int a[1000005],w[1000005]
int  n;
cin>>n;
for(i=1;i<=n;i++)
{cin>>a[i];w[a[i]]==i
}

然后题目中说让小青蛙n跳到现在的空位上,所以现在我们要让现在的小青蛙与现在的空位交换位置,

在此之前,

我们先要知道

现在的小青蛙的位置和当前空位的位置;

让现在的小青蛙与现在的空位交换位置

由此可以得出:

for(i=1;i<n;i++){wi=w[i];w0=w[0];t=a[wi];a[wi]=a[w0];a[w0]=t;t=w[i];w[i]=w[0];w[0]=t;}

题目上说N-1!!!!!

在数值上调完后记得也要在位置上变动!!!

输出

for(i=1;i<=n;i++){cout<<a[i]<<' ';}

OK;

综上所述

总体来看就是这样的::

#include<iostream>
using namespace std;
int a[1000005],w[1000005];
int main()
{int  n,i,j,wi,w0;int t;cin>>n;for(i=1;i<=n;i++){cin>>a[i];w[a[i]]=i;}for(i=1;i<n;i++){wi=w[i];w0=w[0];t=a[wi];a[wi]=a[w0];a[w0]=t;t=w[i];w[i]=w[0];w[0]=t;}for(i=1;i<=n;i++){cout<<a[i]<<' ';}return 0;
}

思路2

规律

我们看样例输入和输出;

1 2 0 3 4;

2 3 1 4 0;

从上向下看,除了最高位以外,是不是每一位上都加了一?

然后最高的那一位的数字也就是n-1;

那么我们就可以得到一个思路:

核心

//

如果当前这个数是N-1的话,那么把这个数覆为0;

否则把这个数加一

//

翻译为c++语言就是:


if(a[i]==n-1)
{cout<<0<<" ";
}
else
{cout<<a[i]+1<<" ";
}

然后就是正经的输入输出:

综上所述

总体来看就是这样的:

#include<iostream>
using namespace std;
int a[1000005];
int main()
{int n,i;cin>>n;for(i=1;i<=n;i++){cin>>a[i];}for(i=1;i<=n;i++){if(a[i]==n-1){cout<<0<<" ";}else{cout<<a[i]+1<<" ";}}
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

运行TensorRT命令出现 No such file or directory: ‘trtexec‘ 的参考解决方法

文章目录 写在前面一、问题描述二、解决方法参考链接 写在前面 自己的测试环境&#xff1a; Ubuntu20.04 一、问题描述 运行trtexec的命令时&#xff0c;出现如下报错&#xff1a; FileNotFoundError: [Errno 2] No such file or directory: trtexec二、解决方法 首先需要…

DDL也会有undo吗?模拟Oracle中DML、DDL与undo的关系,10046跟踪DDL语句

已经有两个月没有更新博客了&#xff0c;主要实在忙毕设和毕业的一些事情&#xff01;这两个月也是非常的精彩呀&#xff0c;充分体会到了职场的和校园的不同&#xff0c;作为一名刚毕业就满 1 年工作经验的牛马人&#xff0c;在两个月期间经历了两次调岗、两次降薪&#xff0c…

MyBatis在insert时返回自增长id值的方法

一、引言 在业务开发的时候&#xff0c;由于MyBatis框架的insert语句默认是不返回记录的主键值&#xff0c;而是返回插入的记录条数的&#xff0c;但是如果业务层需要得到插入数据的主键时候&#xff0c;可以通过配置的方式来实现获取插入数据的ID功能。 <!--useGeneratedK…

VScode 格式化插件Prettier设置无效

VScode在配置格式化代码的插件的时候&#xff0c;可以选择Prettier或者ESlint等插件 比如选择Prettier格式化代码 在某文件修改代码之后&#xff0c;ctrls 保存代码&#xff0c;保存之后会自动格式化代码&#xff0c;但是我们发现控制台有报错 为什么已经设置了格式化插件为Pr…

使用 MinIO 赢得 RAG 权利

人们常说&#xff0c;在人工智能时代&#xff0c;数据是你的护城河。为此&#xff0c;构建生产级 RAG 应用程序需要合适的数据基础架构来存储、版本控制、处理、评估和查询构成专有语料库的数据块。由于 MinIO 采用数据优先的 AI 方法&#xff0c;因此对于此类项目&#xff0c;…

【史上最全面ESP32教程】http通信

文章目录 前言HTTP协议是什么&#xff1f;HTTP协议的特点HTTP协议的常见应用 esp32 使用http通信通信流程基础使用HTTPClient 常用的函数函数介绍&#xff1a;void end(void);bool connected(void);void setReuse(bool reuse);void setUserAgent(const String& userAgent);…

简谈设计模式之建造者模式

建造者模式是一种创建型设计模式, 旨在将复杂对象的构建过程与其表示分离, 使同样的构建过程可以构建不同的表示. 建造者模式主要用于以下情况: 需要创建的对象非常复杂: 这个对象由多个部分组成, 且这些部分需要一步步地构建不同的表示: 通过相同的构建过程可以生成不同的表示…

skywalking-1-服务端安装

skywalking很优秀。 安装服务端 skywalking的服务端主要是aop服务&#xff0c;为了方便查看使用还需要安装ui。另外采集的数据我们肯定要存起来&#xff0c;这个数据库就直接用官方的banyandb。也就是aop、ui、banyandb都使用官方包。 我们的目的是快速使用和体验&#xff0c…

Xshell配置ssh免密码登录(密钥登陆)

文章目录 一、Xshell登陆步骤 一、Xshell登陆步骤 1.生成客户端的公钥私钥 2.生成公钥文件 3.生成私钥文件 4.将公钥传输进要登录的服务器中 5.修改公钥文件名为authorized_keys (authorized_keys是用于存储公钥的特殊文件,如果已经有了这份文件,可以在末尾追加) 6.连…

时序预测 | Matlab实现TCN-Transformer的时间序列预测

时序预测 | Matlab实现TCN-Transformer的时间序列预测 目录 时序预测 | Matlab实现TCN-Transformer的时间序列预测效果一览基本介绍程序设计 效果一览 基本介绍 基于TCN-Transformer模型的时间序列预测&#xff0c;可以用于做光伏发电功率预测&#xff0c;风速预测&#xff0c;…

apt curl wget git 命令行临时设置代理

一、linux 代理全局设置 export http_proxyhttp://192.168.6.9:8080/ export https_proxyhttps://192.168.6.9:8080/ 可以 export https_proxyhttp://192.168.6.9:8080/ 也可以缺点&#xff0c;有些工具不生效&#xff0c;每次要取消代理设置也麻烦 二、linux 命令行临时设置…

Qt框架中信号与槽机制的实现原理及在QGC中的具体应用场景

Qt 框架的信号与槽机制是其最强大和独特的功能之一。它使得对象之间的通信变得非常简单和直观&#xff0c;尤其在处理用户界面事件和其他异步操作时。以下是 Qt 信号与槽机制的实现原理及其在 QGroundControl (QGC) 中的具体应用场景。 信号与槽机制的实现原理 信号与槽的基本…

小白学webgl合集-Three.js加载器

THREE.TextureLoader: 用途: 加载单个图像文件并将其作为纹理应用到材质上。示例: const loader new THREE.DataTextureLoader(); loader.load(path/to/data.bin, function (texture) {const material new THREE.MeshBasicMaterial({ map: texture });const geometry new TH…

使用Spring Boot和Couchbase实现NoSQL数据库

使用Spring Boot和Couchbase实现NoSQL数据库 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 一、引言 NoSQL数据库越来越受到开发者的欢迎&#xff0c;特别是…

引用计数器(kref)

1、什么是引用计数器 如果我们写了一个字符驱动&#xff0c;当硬件设备插上时&#xff0c;系统会生成一个设备节点。用户在应用空间操作这个设备节点就可以操作设备。如果此时将硬件断开&#xff0c;驱动是不是就要立刻释放呢&#xff1f;如果立刻释放&#xff0c;应用程序是不…

docker-compose构建、运行多容器简介

&#xff08;1&#xff09;准备依赖的镜像&#xff0c;包括mariadb、jdk1.8、nginx&#xff0c;配置docker-compose.yml文件 services:mariadb:image: mariadbports:- "3314:3306"environment:- MARIADB_ROOT_PASSWORD123456volumes:- ./mysql:/var/lib/mysqlnetwor…

PLC数采网关在实际应用中有哪些效能?天拓四方

在工业自动化领域中&#xff0c;PLC扮演着至关重要的角色&#xff0c;它负责控制和监测生产线的各个环节。然而&#xff0c;随着工业4.0的推进和智能制造的快速发展&#xff0c;单纯依靠PLC进行现场控制已无法满足企业对数据集中管理、远程监控和智能分析的需求。因此&#xff…

Efficient Estimation of Word Representations in Vector Space论文笔记解读

基本信息 作者TomasMikolovdoi10.48550发表时间2013期刊ICLR网址http://arxiv.org/abs/1301.3781 研究背景 1. What’s known 既往研究已证实 前馈神经网络语言模型(NNLM) 循环神经网络语言模型(RNNLM) 2. What’s new 创新点 Word2vec有两种模型&#xff1a;CBOW和Skip-gr…

AJAX-个人版2.0

AJAX&#xff08;Asynchronous Javascript And Xml&#xff09; 传统请求及缺点 传统的请求都有哪些&#xff1f; 直接在浏览器地址栏上输入URL。点击超链接提交form表单使用JS代码发送请求 window.open(url)document.location.href urlwindow.location.href url… 传统请…

【对抗算法复现】CW

首先进行数据的预处理 transform transforms.Compose([transforms.ToTensor(), # 将图片转换为Tensor&#xff0c;自动将[0,255]映射到[0,1]transforms.Normalize((0.491,0.482 ,0.446), (0.247 ,0.243 ,0.261)) # 对张量进行标准化&#xff0c;使其范围为[-1,1] ])CW实现 …