poj3750-小孩报数问题(约瑟夫环)
一,题意:
中文题。
二,思路:
1,输入。
2,无限循环1~n~1~n,直到输出n次,再跳出。
3,输出名字,并标记。
普通模拟版:
#include<iostream>
#include<cstring>
using namespace std;
int main() {
char name[][];
int n, w, s;
cin >> n;
for (int i = ; i <= n; i++) {
cin >> name[i];
}
scanf("%d,%d", &w, &s);
int count = ; //记录经过未标记的名字几次
int k = ; //记录输出的次数
for (int i = w; k!=n ; i++) { //输出 n 次,跳出
if (i > n) i = i % n; //循环 1~n~1~n
if (strcmp(name[i], "")) count++; //经过未标记的名字时 count++
if (count == s) { //经过s次未被标记的名字时
cout << name[i] << endl;
k++; //输出一次 k++
count = ; //输出以后count重新记数
w = i; //输出之后,w 重新从 i 开始
strcpy(name[i], ""); //已经输出的名字标记为 1
}
}
return ;
}
线性表模拟版:
#include<iostream>
#include<string>
using namespace std; class SeqList {
public:
SeqList(string str[], int n); //构造函数,创建长度为n 的线性表
string Delete(int i); //输出并删除结点
int getLength() { return length; } //获取长度
private:
int length;
string name[];
}; SeqList::SeqList(string str[], int n) { //实现构造函数
for (int i = ; i < n; i++) {
name[i] = str[i];
}
length = n;
} string SeqList::Delete(int i) {
string x = name[i - ]; //定义一个x接收被删除的字符串
for (int j = i; j < length; j++) { //从被删除的结点开始,后面的向前移动,覆盖被删除的结点
name[j - ] = name[j];
}
length--; //删除一个结点,长度减 1
return x;
} int main() {
string str[];
int n, w, s;
cin >> n;
for (int i = ; i < n; i++) {
cin >> str[i];
}
scanf("%d,%d", &w, &s);
SeqList S(str, n);
while(n--) {
int ans = (w + s - ); //ans 表示要输出的名字的序号
if ( ans==S.getLength() ) {
w = ans;
cout << S.Delete(w) << endl;
}
else {
if (ans % S.getLength() != ) {
w = ans % S.getLength();
cout << S.Delete(w) << endl;
}
else {
cout << S.Delete(w--) << endl;
} } }
return ;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
poj3750-小孩报数问题(约瑟夫环)的更多相关文章
- POJ3750: 小孩报数问题+一道经典约瑟夫问题(猴子选大王)
又一次因为一个小错误,POJ上Wrong Answer了无数次..... 在差不多要放弃的时候,发现了这个猥琐的不能再猥琐的bug,改完了提交就AC了,简直无语.... 本题wo采用模拟方法: 1 # ...
- 约瑟夫问题 小孩报数问题poj3750
小孩报数问题 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 15228 Accepted: 6778 Descripti ...
- 约瑟夫环问题:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
首先,我最大的学习来源不是百度而是我群友~~在这里表白一波我热爱学习的群友们!然后今天群里突然有人提出了题目的这个问题:有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人退出 ...
- POJ 3750 小孩报数问题 (线性表思想 约瑟夫问题 数组模拟运算的 没用循环链表,控制好下标的指向就很容易了)
小孩报数问题 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10423 Accepted: 4824 Descripti ...
- Java数据结构之单向环形链表(解决Josephu约瑟夫环问题)
1.Josephu(约瑟夫.约瑟夫环)问题: 设编号为1,2,… n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m ...
- 单向环形链表解决约瑟夫环(Josephus)问题
一.约瑟夫环问题 Josephu 问题为:设编号为1,2,- n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m的那 ...
- tc 147 2 PeopleCircle(再见约瑟夫环)
SRM 147 2 600PeopleCircle Problem Statement There are numMales males and numFemales females arranged ...
- C++ 约瑟夫环问题
约瑟夫环比较经典了 已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到m的那个人出列:他的下一个人又从1开始报数,数到m的那个人又出列:依此规律重复下去,直 ...
- 约瑟夫环的java解决
总共3中解决方法,1.数学推导,2.使用ArrayList递归解决,3.使用首位相连的LinkedList解决 import java.util.ArrayList; /** * 约瑟夫环问题 * 需 ...
随机推荐
- socket 收发报文小程序
需要注意,由于是从文件读取,而WINDOWS自带的文本文档程序,亲测对于UTF-8文件会不可见地在文件头多出3个字节.另外回车换行也是不可见字节,需要考虑到. package com.test.com ...
- Problem with "AnyConnect was not able to establish connection to the specified secure gateway."
Cisco的VPN客户端最近报"AnyConnect was not able to establish connection to the specified secure gateway ...
- Oracle临时文件
临时数据文件时一种特殊的文件,当内存不足时,Oracle用他来存储一些临时数据,如排序或散列操作. 自12c起,对临时表的操作所产生的undo也会放到临时表空间中,而在12c之前,这部分undo放在u ...
- 比较完整的WebView的用法
WebView, WebChromeClient和WebViewClient加载网页基本用法 webview是android中的浏览器控件,在一些手机应用中常会用到b/s模式去开发应用,这时webvi ...
- 使用简介<EntityFramework6.0>
序言 在这一篇中,我们将演示EnitityFramework基本的建模[建模也是EntityFramework最核心的特性]范例,例如实体的分离和继承等.我们开始了演示如何创建一个简单的概念模型的例子 ...
- ehcache注解全面解析---打酱油的日子
通过ehcache以编程方式使用缓存: 跟上面的方式相同,但是缓存通过ehcache去管理,当然比使用map有N多种好处,比如缓存太大了快达到上限之后,将哪一部分缓存清除出去.这种方式完全是通过代码的 ...
- 『AngularJS』$location 服务
项目中关于 $location的用法 简介 $location服务解析在浏览器地址栏中的URL(基于window.location)并且让URL在你的应用中可用.改变在地址栏中的URL会作用到$loc ...
- Code Lock[HDU3461]
Code LockTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Subm ...
- 【转】apache 二级域名设置完整步骤
原文链接:http://blog.sina.com.cn/s/blog_5375d76b01014fnt.html 最近在折腾网站二级域名的事情,在网上查了很多零碎的文档,不完整,有些也没有自己验证, ...
- QuanbenSoft Windows Runtime (Windows Store)Apps 应用及其框架总览
Parrot Simple audio repeater for language learners http://www.windowsphone.com/en-au/store/app/parro ...