标准约瑟夫问题链表版

type
    point=^node;
    node=record
        data:longint;
        next:point;
    end;
var
    h,s,p,q:point;
    m,n,i,t:longint;
begin
    readln(n,m);

    //create the linked list
    new(s);  h:=s;  s^.data :=1;  p:=s;
    for i:=2 to n do
    begin
        new(s);  s^.data:=i;  p^.next:=s;  p:=s;
    end;
    p^.next:=h;

    //elect the king
    q:=p; t:=0;
    repeat
        p:=q^.next;  inc(t);
        if t=m then
        begin
            q^.next:=p^.next;  writeln(p^.data); dispose(p);  t:=0
        end
        else q:=p;
    until p=p^.next;

    writeln(p^.data);
end.

时间: 2024-10-25 12:36:54

标准约瑟夫问题链表版的相关文章

题目:《项目集管理标准(第三版)》发布会10月25日在京成功举办

作者:共创国际-项目管理者联盟   正文:   共创国际项目管理者联盟于2014年10月25日在电子工业出版社(华信大厦)举办了<项目集管理标准(第三版)>发布会.<项目集管理标准(第三版)>(中文版)由项目管理者联盟项目集管理研究中心翻译与审校,并由电子工业出版社出版.本次发布会的举办是项目集管理研究中心推广项目集管理三年多来的重要里程碑事件. 在来自PMI(中国).国家外国专家局培训中心.共创国际项目管理者联盟.电子工业出版社的多位领导与嘉宾的见证下,<项目集管理标准(第

《深入理解ES6》 PDF中英文+《ES6标准入门第3版》PDF分析

ES6是ECMAScript标准十余年来变动最大的一个版本,其中添加了许多新的语法特性,既有大家耳熟能详的Promise,也有闻所未闻的Proxy代理和Reflection反射:既有可以通过转译器(Transpiler)等方式在旧版本浏览器中实现兼容的let.const.不定参数.展开运算符等功能,亦有无论如何都无法实现向前兼容的尾调用优化.深入理解ES6的特性对于所有JavaScript开发者而言至关重要,在可预见的未来,ES6中引入的语言特性会成为JavaScript应用程序的主流特性,这也

关于Nicolai M. Josuttis编写,侯杰译的《C++标准库》第二版中提到的mutable主题的一点看法。

详见<C++标准库>第二版,P30.对原文总结如下: mutable: 通过by value的形式传递母函数体内可见的变量. 你有权利修改传入的值. 可把传入变量视为私有的成员变量,原文:int id. 我的看法是:以上第三点应加上:static限定符,应为每次调用都是延续着上一次改变. 原文地址:https://www.cnblogs.com/LeiFeng1000/p/12635303.html

codves1282 约瑟夫问题 链表 会 T

codves1282 约瑟夫问题 STL LIST 链表 暴力模拟 但是会 T list 听说正解是线段树分析一下,我们有以下两种操作: 1. 找到剩余队列中第K个人在数组中的位置2. 删除第K个人假如我们一开始给每个人一个权值1,然后维护一个前缀和s(n)那么,操作1就变成了找到前缀和为i的位置.当将第i个人删除时,只需将其权值置0,维护好前缀和,这样剩余队列中第i'个人的实际位置就在原先第i人后面了. 我们可以把前缀和转换为区间和,所以我们可以用线段树进行快速操作 1 #include <c

实现约瑟夫环形链表

题目 41个人排成一个圆圈,由第1个人 开始报数,每报数到第3人,该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止.约瑟夫与朋友在第16与第31个位置,于是活了下来.请用单向环形链表描述该结构并呈现整个自杀过程. 设计 首先要设计一个节点模型 class Node { int value; Node next; Node(int value) { this.value = value; } } 遍历并用 last 节点做成一个单向线性的链表,之后将自身的初始节点指向last.ne

链表版冒泡排序

基本原理就是尾插法建立链表(当然,也可以用头插法建立链表),重点是冒泡排序法中的两层for循环的参数设置,设置两个链表指针p.q: 第一个用来指向头结点后一个(p = head ->next)(p还有个作用就是排序的步骤数),第二个用来指向头结点后一个的后一个(q = p -> next),每次内层循环q指针往后移一个结点,然后和第一个节点存储的数据相比较,完成交换,直到第一次排序完毕为止,整个过程中,p指针一直指向的是第一个数.第二次,p就指向后一个节点,q指向p所指向的节点的后一个节点,然

约瑟夫问题链表解决

1 /*据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友 2 躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个 3 人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止.然而Josephus 4 和他的朋友并不想遵从.首先从一个人开始,越过k-2个人(因为第一个人已经被越过),并杀掉第k个人.接着,再越 5 过k-1个人,并杀掉

标准mysql(x64) Windows版安装过程

mysql x64不提供安装器,不提供安装器,不提供安装器-- 每次查英文文档有点慢,不够简. 5.7.6以后的64位zip包下载后解压是没有data目录的. 进入解压后的bin目录:(我用的powershell) 初始化data目录(会随机分配一个密码,记下来).\mysqld --initialize --console 安装服务(自动启动的服务,只安装,不启动).\mysqld --install --install-manual是手动启动,--remove是卸载服务 启动net star

精通CSS:高级Web标准解决方案(第二版) 初读笔记

2.1 常用的选择器 1. 类型选择器  p { color: black; } 2. 后代选择器  blockquote p { padding-left: 2em; } 3. ID选择器  #intro { font-weight: bold; } 4. 类选择器  .date-posted { color: #cccccc; } 5. 伪类  a:link { color: blue; } 6. 通用选择器  * { padding: 0; } 7. 子选择器  #nav>li { pad