当前位置: 首页 > news >正文

数据结构 Joseph

  初始值M=20.输入N个人,每个人手里拿有一个密码。出去的那个人,他手上的密码就为M值。。求他们出来的顺序。

#include <iostream>
#include <malloc.h>
int initM=20; // THe initial M
using namespace std;
typedef struct LNode{
int no;
int code;
struct LNode *next;
}LNode,*LinkList;
void InitList(LinkList &L){
if(L==NULL){
L=(LinkList)malloc(sizeof(LNode));
L->no=0;
L->code=0;
L->next=L;
}
}
void ListInsert_L(LinkList &L,int e,int co){
LinkList p, s;
p=L;
if(p->no==0)
{
p->no=e;
p->code=co;
p->next=p;
}
else{
s=(LinkList)malloc(sizeof(LNode));
s->no=e;
s->code=co;
s->next=p->next;
p->next=s;
p=s;
}
L=p; //L always point to the end
}

void Joseph(LinkList &L,int n){
int count=0;
int flag=0,i=0; //flag=0 means the first turn,M=20
LinkList p;
for(p=L->next;i<=n;p=p->next){
if(p->code!=0) //It hasn't been visited
count++;
if(flag==0 && count==initM){
cout<<p->no<<"";
initM=p->code;
p->code=0;
flag=1;
count=0;
i++;
}
if(flag==1 && count==initM){
cout<<p->no<<"";
initM=p->code;
p->code=0;
i++;
count=0;
}
}
}


int main()
{
LinkList L=NULL;
InitList(L);
freopen("acm.txt","r",stdin);
int n;
cin>>n;
int i,j=1;
while(cin>>i){
ListInsert_L(L,j,i);
j++;
}
/*
LinkList p;
for( p=L;p->next!=L;p=p->next)
cout<<p->no<<" "<<p->code<<" "<<endl;
cout<<p->no<<" "<<p->code<<" "<<endl;
*/
Joseph(L,n);
return 0;
}



相关文章:

  • android GC内存泄露问题
  • 协助ScriptCase7.1做些汉化矫正工作
  • codility上的问题 (21) Upsilon 2012
  • Go语言语法汇总
  • instanceof关键字
  • [LeetCode] Max Points on a Line
  • Appium 三种wait方法(appium 学习之改造轮子)
  • 文件服务器 之 Debian下配置使用Subversion版本控制服务器
  • 浏览器缓存机制(转)
  • C#网络编程系列文章索引
  • iOS Web应用开发:运用HTML5、CSS3与JavaScript
  • Makefile 中:= ?= += =的区别
  • centos7zabbix-agen安装
  • vue-i18n beforeDestroy不能调用this.$t
  • 验证码识别并复制到剪切板
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 07.Android之多媒体问题
  • Android 架构优化~MVP 架构改造
  • egg(89)--egg之redis的发布和订阅
  • Flex布局到底解决了什么问题
  • Git初体验
  • Java 最常见的 200+ 面试题:面试必备
  • JavaScript学习总结——原型
  • JSDuck 与 AngularJS 融合技巧
  • Js基础知识(四) - js运行原理与机制
  • leetcode-27. Remove Element
  • Less 日常用法
  • REST架构的思考
  • 安卓应用性能调试和优化经验分享
  • 包装类对象
  • 电商搜索引擎的架构设计和性能优化
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 将回调地狱按在地上摩擦的Promise
  • 新版博客前端前瞻
  • 新手搭建网站的主要流程
  • 做一名精致的JavaScripter 01:JavaScript简介
  • 仓管云——企业云erp功能有哪些?
  • 选择阿里云数据库HBase版十大理由
  • 组复制官方翻译九、Group Replication Technical Details
  • ​水经微图Web1.5.0版即将上线
  • # Java NIO(一)FileChannel
  • # 计算机视觉入门
  • (floyd+补集) poj 3275
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (十三)Maven插件解析运行机制
  • (小白学Java)Java简介和基本配置
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • (转载)PyTorch代码规范最佳实践和样式指南
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现