首页 > 其他分享 >【洛谷 P1996】约瑟夫问题 题解(队列+模拟+循环)

【洛谷 P1996】约瑟夫问题 题解(队列+模拟+循环)

时间:2024-09-08 10:53:14浏览次数:14  
标签:输出 出圈 int 题解 样例 P1996 队首 洛谷 报数

约瑟夫问题

题目描述

【洛谷 P1996】约瑟夫问题 题解(队列+模拟+循环)_i++ 个人围成一圈,从第一个人开始报数,数到 【洛谷 P1996】约瑟夫问题 题解(队列+模拟+循环)_i++_02 的人出列,再由下一个人重新从 【洛谷 P1996】约瑟夫问题 题解(队列+模拟+循环)_#include_03 开始报数,数到 【洛谷 P1996】约瑟夫问题 题解(队列+模拟+循环)_i++_02 的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。

注意:本题和《深入浅出-基础篇》上例题的表述稍有不同。书上表述是给出淘汰 【洛谷 P1996】约瑟夫问题 题解(队列+模拟+循环)_#include_05 名小朋友,而该题是全部出圈。

输入格式

输入两个整数 【洛谷 P1996】约瑟夫问题 题解(队列+模拟+循环)_i++_06

输出格式

输出一行 【洛谷 P1996】约瑟夫问题 题解(队列+模拟+循环)_i++ 个整数,按顺序输出每个出圈人的编号。

样例 #1

样例输入 #1

10 3

样例输出 #1

3 6 9 2 7 1 8 5 10 4

提示

【洛谷 P1996】约瑟夫问题 题解(队列+模拟+循环)_出队_08


思路

首先将 1~n 的数依次加入队列中。

然后进行循环,每轮报数,前 m - 1 个,队首元素放到队尾,然后出队。第 m 个队首元素输出后出队。

重复此过程直到队列为空。


AC代码

#include <iostream>
#include <queue>
#define AUTHOR "HEX9CF"
using namespace std;

int n, m;
queue<int> qu;

int main()
{
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
    {
        qu.push(i);
    }
    while (!qu.empty())
    {
        for (int i = 1; i < m; i++)
        {
            qu.push(qu.front());
            qu.pop();
        }
        cout << qu.front() << " ";
        qu.pop();
    }
    return 0;
}

标签:输出,出圈,int,题解,样例,P1996,队首,洛谷,报数
From: https://blog.51cto.com/HEX9CF/11951358

相关文章

  • 【题解】CF1955E
    CF1955E翻译思路代码翻译原题链接CF1955E思路  由于每次操作区间长度是定值,所以我们可以说,如果最前面的数已经是1了,那它再也不会被进入操作。因为如果把它变回0,那想再变成1只能以它为起点再操作一次,前后两次操作抵消。  所以思路很简单,直接......
  • 精选洛谷日报链接
    可并堆重谈容斥原理多项式总结CDQ分治学习笔记斐波那契数列基础博弈论学习笔记学图论,你真的了解最短路吗?线段树分治总结数论小白都能看懂的数学期望讲解位运算卷积(FWT)&集合幂级数浅析sort树的直径与重心时间复杂度-势能分析浅谈[洛谷日报#242]Johnson全源最短路......
  • Leetcode 第 409 场周赛题解
    Leetcode第409场周赛题解Leetcode第409场周赛题解题目1:3242.设计相邻元素求和服务思路代码复杂度分析题目2:3243.新增道路查询后的最短距离I思路代码复杂度分析题目3:3244.新增道路查询后的最短距离II思路代码复杂度分析题目4:3245.交替组III思路代码复杂度......
  • 题解:AT_abc370_c [ABC370C] Word Ladder
    说句闲话并不会有更好的阅读体验。这题是一个比较奇葩的贪心、构造。也可以认为是一个数据结构略有难度的练习题。理论部分?>注:使用\(N\)表示字符串长度。一句段话题意:三个字符串\(S\)、\(T\)、\(X\),其中\(S\)和\(T\)仅包含小写字母且等长,\(X\)为空。每一个操作可以......
  • CF2002D2 DFS Checker (Hard Version) 题解
    https://codeforces.com/problemset/problem/2002/D2考虑找一个容易维护的必要条件,再证明充分性。最容易想到的是每个子树对应一个区间,子树根位于左端点sol1相邻的结点\(p_{i-1},p_i\)有两种情况:\(fa[p_i]=p_{i-1}\);叶子\(p_{i-1}\)在子树\(fa[p_i]\)中,回溯到\(fa[......
  • abc370 A-E题解 (AtCoder Beginner Contest 370)
     A这类简单题,看清楚:OutputPrint Yes, No,or Invalid accordingtotheinstructionsintheproblemstatement. B Cstd,这样写(0->n-1,n-1->0),可以少写一个vector1#include<bits/stdc++.h>2usingnamespacestd;34intmain(){5strings,......
  • 题解:Toyota Programming Contest 2024#9(AtCoder Beginner Contest 370)
    总体情况这次手速够快:ABCin10min,ABCDEin30min。A-RaiseBothHands思路分类讨论很简单的。注意一定要判断\(0,0\)这种情况。Code//Problem:A-RaiseBothHands//Contest:AtCoder-ToyotaProgrammingContest2024#9(AtCoderBeginnerContest370)//URL:......
  • 【赛后反思】洛谷基础赛 #15 &「LAOI」Round 6 考后总结(待补完)
    LGR-198-Div.3考后总结又要掉分了:展开目录目录LGR-198-Div.3考后总结A[太阳]]请使用最新版手机QQ体验新功能-100ptsBRadiation-100ptsC区间测速-50ptsDYetAnotherGraphColorationProblem-5ptsA[太阳]]请使用最新版手机QQ体验新功能-100pts因为实际上要截......
  • 天翼云存储SpinTires问题解析:d3dx9_43.dll文件丢失应对指南
    在使用天翼云存储或运行SpinTires等游戏时,有时会遇到系统提示“d3dx9_43.dll文件丢失”的错误。这个问题通常是由于DirectX组件中的d3dx9_43.dll文件未正确安装、损坏或丢失所导致的。以下是一些应对指南,帮助您解决这一问题:一、了解d3dx9_43.dll文件的重要性d3dx9_43.dll是D......
  • 东方博宜oj题解1161-1165(c++)
    各位读者们,抱歉,因为最近的时间原因,所以更新频率比较低。1161:1161-元素插入有序数组-东方博宜OJ#include<bits/stdc++.h>usingnamespacestd;intmain(){ intn,s,c; cin>>c>>n; inta[n];//定义数组 for(inti=0;i<n;i++){ cin>>a[i]; } s=n;//设c是最大的......