左神高级提升班2 约瑟夫环结构

目录

【案例1】

【题目描述】

【输入描述:】

【输出描述:】

【输入】

【输出】

【思路解析】

【代码实现】


【案例1】

【题目描述】


某公司招聘,有n个人入围,HR在黑板上依次写下m个正整数A1、A2、……、Am,然后让这n个人围成一个 圈,并按照顺时针顺序为他们编号0、1、2、……、n-1。录取规则是:
第一轮从0号的人开始,取用黑板上的第1个数字,也就是A1黑板上的数字按次序循环取用,即如果某轮用了第m个,则下一轮需要用第1个;如果某轮用到第k个,则下轮需要用第k+1个(k<m)
每一轮按照黑板上的次序取用到一个数字Ax,淘汰掉从当前轮到的人开始按照顺时针顺序数到的第Ax个人,下一轮开始时轮到的人即为被淘汰掉的人的顺时针顺序下一个人 被淘汰的人直接回家,所以不会被后续轮次计数时数到经过n-1轮后,剩下的最后1人被录取所以最后被录取的人的编号与(n,m,A1,A2,……,Am)相关。


【输入描述:】


第一行是一个正整数N,表示有N组参数从第二行开始,每行有若干个正整数,依次存放n、m、A1、……、Am,一共有N行,也就是上面的N组参数。


【输出描述:】


输出有N行,每行对应相应的那组参数确定的录取之人的编号示例1:


【输入】


1
4 2 3 1


【输出】


1

【思路解析】

我们先认为就是每淘汰一个人就会重新排一次序,然后最后淘汰掉n-1个人后,只剩一个人排序为0。那么我们能不能通过他这次排序的编号,和上一轮淘汰掉Ax编号和上一轮一共有几个人这个信息来获得他上一轮的编号。如果能通过这样的信息来获得曾经的编号,那我们一直递归往上,直到获得他最初始的编号,然后返回这个编号。

01234
2301
012
01
0

这个表格模拟了淘汰情况,(简单模拟每次都淘汰掉第三个人),通过每一次淘汰都画出新老编号的对应关系,看图知道大概是模一个东西的图像,然后总结表格和图像规律后可以得到函数为

F(x) = (x + m) % i;F(x) 为在第i轮的编号,x为在第i - 1轮的编号,m表示第i轮选择淘汰编号为多少的人。

又因为每轮次淘汰的m并不一样,但是他是循环使用的,在递归时一定要加入这个的变化。

【代码实现】

import java.util.Scanner;/*** @ProjectName: study3* @FileName: Ex5* @author:HWJ* @Data: 2023/9/17 15:23*/
public class Ex5 {static int[] arr;static int m;public static void main(String[] args) {Scanner input = new Scanner(System.in);int N = input.nextInt();for (int i = 0; i < N; i++) {int n = input.nextInt();m = input.nextInt();arr = new int[m];for (int j = 0; j < m; j++) {arr[j] = input.nextInt();}System.out.println(getNum(n, 0));}}public static int getNum(int i, int ax) {if (i == 1) {return 0;}int x = (getNum(i - 1, ax == m - 1 ? 0 : ax + 1) + arr[ax]) % i;return x;}}

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

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

相关文章

如何在JoySSL上申请免费的SSL证书

1&#xff0c;前往 JoySSL 的官方网站注册页面&#xff0c;创建一个账号并登录您的 JoySSL 账户。 扫码注册账号申请免费证书https://www.joyssl.com/certificate/select/free.html?nid52&#xff0c;找到并选择你需要的 SSL 证书相关的功能或选项。 3&#xff0c;提供您的域…

springboot实现发送邮箱验证码

准备工作 在邮箱官网开放SMTP授权&#xff0c;获取相应密钥&#xff0c;才可以进行发送邮件 这里以网易163邮箱为例&#xff0c;登录邮箱后&#xff0c;依次点击“设置-POP3/SMTP/IMAP” &#xff0c;然后开启SMTP服务。这时候会提示一个授权码&#xff0c;例如&#xff1a;H…

全流程ARCGIS Pro技术应用教程

详情点击公众号链接&#xff1a;全流程ARCGIS Pro技术应用教程 前沿 GIS是利用电子计算机及其外部设备&#xff0c;采集、存储、分析和描述整个或部分地球表面与空间信息系统。简单地讲&#xff0c;它是在一定的地域内&#xff0c;将地理空间信息和 一些与该地域地理信息相关…

【Ambari】银河麒麟V10 ARM64架构_安装Ambari2.7.6HDP3.3.1(HiDataPlus)

&#x1f341; 博主 "开着拖拉机回家"带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——&#x1f390;开着拖拉机回家_大数据运维-CSDN博客 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341; 希望本文能够给您带来一定的帮助&#x1f338;文…

Matlab中(:,1)和(:,end)和[~, A]的含义与用法

背景 阅读Moses Chong-ook Nah的DMP-MATLAB程序记录。 github链接&#xff1a;https://github.com/mosesnah-shared/DMP-MATLAB 如果不知道某个函数或变量的作用&#xff0c;直接打印出来&#xff0c;看看输出是什么。不知道matlab如何打印&#xff1f;程序后面的分号;去掉就…

Day1-DeepWalk

论文《DeepWalk: Online Learning of Social Representations》 2014年发表在数据挖掘顶会ACM SIGKDD&#xff08;KDD&#xff09;上的论文 目的&#xff1a;学习节点表示 推动&#xff1a;将自然语言处理里面的无监督学习方法迁移至此 思路&#xff1a;将图结构序列化&#x…

深入电机控制基础知识(1)- 磁共能与电磁转矩

1.1 概述 打开任意一本电机学的教材&#xff0c;翻到电机基本概念的说明的位置&#xff0c;总能看到一句描述电机本质的话&#xff1a;电机是一种机电能量转化的装置。 机电能量转化&#xff0c;很生动形象的说明电机的工作原理。对于电动机而言&#xff0c;吸收电能&#xff…

优思学院|如何解读Minitab中测量系统分析(MSA GRR)的结果?

在现代制造和质量控制过程中&#xff0c;精确的测量是至关重要的。为了确保我们的测量工具可靠&#xff0c;我们需要评估其重复性与再现性。这就是测量系统分析&#xff08;Measurement System Analysis&#xff0c;简称MSA&#xff09;的关键目标之一。以下将介绍如何使用Mini…

前端进阶--深入理解JavaScript

1、JS的作用域和作用域链 作用域链的作用是保证对执行环境有权访问的所有变量和函数的有序访问&#xff0c;通过作用域链&#xff0c;我们可以访问到外层环境的变量和函数。作用域链的本质上是一个指向变量对象的指针列表。变量对象是一个包含了执行环境中所有变量和函数的对象…

IDEA下使用Spring MVC

<?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://ma…

【GO】LGTM_Grafana_gozero_配置trace(4)_代码实操及追踪

最近在尝试用 LGTM 来实现 Go 微服务的可观测性&#xff0c;就顺便整理一下文档。 Tempo 会分为 4 篇文章&#xff1a; Tempo 的架构官网测试实操跑通gin 框架发送 trace 数据到 tempogo-zero 微服务框架发送数据到 tempo 本文就是写一下如何在 go-zero 微服务框架里面配置 t…

暗月中秋靶场活动writeup

前言 暗月在中秋节搞了个靶场活动&#xff0c;一共有4个flag&#xff0c;本着增长经验的想法参加了本次活动&#xff0c;最终在活动结束的时候拿到了3个flag&#xff0c;后面看了其他人的wp也复现拿到第四个flag。过程比较曲折&#xff0c;所以记录一下。 靶场地址 103.108.…

Chinese-LLaMA-AIpaca

文章目录 关于 Chinese-LLaMA-Alpaca一、LLaMA模型 --> HF格式二、合并LoRA权重,生成全量模型权重方式1:单LoRA权重合并方式2:多LoRA权重合并(适用于Chinese-Alpaca-Plus )三、使用 Transformers 进行推理四、使用 webui 搭建界面1、克隆text-generation-webui并安装必…

基础排序算法

插入排序&#xff08;insertion sort&#xff09; 插入排序每次循环将一个元素放置在适当的位置。像抓牌一样。手里的排是有序的&#xff0c;新拿一张牌&#xff0c;与手里的牌进行比较将其放在合适的位置。 插入排序要将待排序的数据分成两部分&#xff0c;一部分有序&#…

Leetcode 409. 最长回文串

文章目录 题目代码&#xff08;9.24 首刷自解&#xff09; 题目 Leetcode 409. 最长回文串 代码&#xff08;9.24 首刷自解&#xff09; class Solution { public:int longestPalindrome(string s) {unordered_map<char, int> mp;for(char c : s) mp[c];int res 0;int…

什么是Selenium?使用Selenium进行自动化测试!

你知道什么是 Selenium 吗&#xff1f;你知道为什么要使用它吗&#xff1f;答案就在本文中&#xff0c;很高兴能够与你共飧。 自动化测试正席卷全球&#xff0c;Selenium 认证是业界最抢手的技能之一。 什么是 Selenium&#xff1f; Selenium 是一种开源工具&#xff0c;用于…

2023蓝帽杯半决赛misc题目复现

后续会逐渐完善&#xff1a; misc--排排坐吃果果 我真是无大语了&#xff0c;对于我的死脑筋&#xff0c;文件一打开是一片白色&#xff0c;但是点开单元格会看到里面有数字&#xff0c;我想到了修改单元格的格式&#xff0c;就是没想到转换字体的颜色&#xff0c;对此我表示…

阿里云ESS弹性伸缩核心概念与基本使用

文章目录 1.ESS弹性伸缩基本概念1.1.弹性伸缩概念1.2.弹性伸缩应用场景1.3.弹性伸缩的应用模式 2.开通ESS弹性伸缩服务3.为KodCloud云盘集群创建弹性伸缩组3.1.创建伸缩组3.2.设置伸缩组的名称、类型、移除策略、健康检查3.3.设置组内实例数、冷却时间、网络类型、扩缩容策略、…

【数据结构与算法】不就是数据结构

前言 嗨喽小伙伴们你们好呀&#xff0c;好久不见了,我已经好久没更新博文了&#xff01;之前因为实习没有时间去写博文&#xff0c;现在已经回归校园了。我看了本学期的课程中有数据结构这门课程&#xff08;这么课程特别重要&#xff09;&#xff0c;因为之前学过一点&#xf…

华为数通方向HCIP-DataCom H12-831题库(单选题:41-60)

第41题 除了虚连接之外,OSPFV3的Hello报文源IPv6地址是哪种类型的IPv6地址? A、IPv6任播地址 B、唯一本地地址 C、全球单播地址 D、链路本地地址 答案: D 解析: 这里题目是源IPv6,不是目的IPv6,与另一题类似 第42题 下列描述中关于MPLS网络中配置静态LSP正确的是? A、…