一如既往的题目传送:     https://www.luogu.org/problemnew/show/P1996 这里不讲数组模拟的方法(毕竟多做点题的模拟功力足以暴力出这道题),而是讲一种单循环链的做法. 读一下题就能发现题目中线性循环的思想,且题目数据范围不大,便考虑用单循环链模拟计数: 我们用数组来模拟这一链形结构:a[i]存放编号为i的节点的下一个节点的编号,(在本题中初始为a[1]=2,a[2]=3,...,a[n-1]=n,a[n]=1)这样每个节点都被上一个节点联系起来,所有节…
题目背景 约瑟夫是一个无聊的人!!! 题目描述 n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,--依次类推,直到所有的人都出圈,请输出依次出圈人的编号. 输入输出格式 输入格式: n m 输出格式: 出圈的编号 输入输出样例 输入样例#1: 复制 10 3 输出样例#1: 复制 3 6 9 2 7 1 8 5 10 4 说明 m, n \le 100m,n≤100 思路:题目数据比较小,所以算是一道比较水的题了,就用了队列来写…
(是时候为五一培训准备真正的技术了qwq) part1  队列(FIFO) 算法简介: FIFO:First In First Out(先进先出) 队列是限定在一端进行插入,另一端进行删除的特殊线性表. 允许出队的一头叫做队头(head||front),允许出队的一端称为队尾(rear||tail)所有需要进队的数据项,只能从队尾进入,队列中的数据只能从队头离去qwq. 今天wz小姐姐讲惹一小时滴不知道有什么用滴东西qwq,这里做个笔记吧ヽ(•̀ω•́ )ゝ 1.队列在c语言中的语法? No.1…
P1996 约瑟夫问题 广度优先搜索 我竟然寄几做对了 这个题用到了队列 下面详细解释: 我的代码: #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<algorithm> #include<string> #include<cstring> using namespace std; ]; int main() {…
https://www.luogu.org/problemnew/show/P1996 约瑟夫环这个问题一直以来都是用循环链表写的,今天才知道有循环队列的写法.以下是要点: 1.循环队列实现环的思想,其实就是队首元素出队,如果它不是该出队的元素,那么就把它继续push进queue,这样就构成了一个环的结构. 2.用一个辅助变量来记录每次要进行的操作,比如每三个人出来选出一个人,temp设置为2,先连续两次出队再入队,此时队首就是该出队的那个元素,把它直接pop扔掉即可.循环执行,直至所有元素出队…
P1996 约瑟夫问题 (什么?!要给学弟学妹讲约瑟夫问题?!难道就不怕我给他们讲错了吗?! 啊啊啊,为了不给学弟学妹们讲错,蒟蒻表示要临阵磨一下刀...) 题目背景 约瑟夫是一个无聊的人!!! 题目描述 n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,……依次类推,直到所有的人都出圈,请输出依次出圈人的编号. 输入输出格式 输入格式: n m 输出格式: 出圈的编号 输入输出样例 输入样例#1: 10 3 输出样例#1: 3…
题目:P1996 约瑟夫问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 可恶啊,本来是一道不算难的题,硬是因为cin,cout同步流卡了我一天qwq 关闭cin,cout同步流后,就无法输出vector了 vector的erase时间复杂度是大于O(1)但小于O(n)的,总体来说不算慢 代码: #include <iostream> #include <vector> using namespace std; typedef long long ll; ve…
[题目链接] https://www.luogu.org/problem/P1996 题目描述 n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,…… 依次类推,直到所有的人都出圈,请输出依次出圈人的编号. 输入格式 n m 输出格式 出圈的编号 输入输出样例 输入 #1 10 3 输出 #1 3 6 9 2 7 1 8 5 10 4 说明/提示 100 ≤ m,n ≤ 100 [题解] 问题其实并不困难,但是目的就是利用题目来锻…
题目:https://www.luogu.org/problemnew/show/P1996 题意: 约瑟夫环.每次取出第m个,第2m个...... 思路: 链表维护.[感觉很少有用到链表.]非常经典的约瑟夫问题,用链表解决. #include<cstdio> #include<cstdlib> #include<map> #include<set> #include<iostream> #include<cstring> #incl…
约瑟夫问题(历史战争问题) 直观理解 老外视频讲解 模拟器演示 约瑟夫问题 数学姥公众号 讲的最清楚 背景及,推倒过程讲解得很清晰,旨在提高人们对数据的兴趣 简单说下: 几个人围成一圈(循环队列), 第一个人开始报数 1 2 1 2, 依次进行,喊2的被杀掉. 如果人数是n,则最后剩下几号? 约瑟夫斯问题是个蛮好玩的问题.这个问题来源于一个犹太叛徒,约瑟夫斯是犹太人,参与了对罗马的起义,并被任命为起义部队的军事长官.不过在后来罗马军团的进攻下,犹太人的起义很快失败了,约瑟夫斯带领这39名犹太士兵…