一,题意:
  中文题。
二,思路:
  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-小孩报数问题(约瑟夫环)的更多相关文章

  1. POJ3750: 小孩报数问题+一道经典约瑟夫问题(猴子选大王)

    又一次因为一个小错误,POJ上Wrong Answer了无数次..... 在差不多要放弃的时候,发现了这个猥琐的不能再猥琐的bug,改完了提交就AC了,简直无语.... 本题wo采用模拟方法: 1 # ...

  2. 约瑟夫问题 小孩报数问题poj3750

    小孩报数问题 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 15228   Accepted: 6778 Descripti ...

  3. 约瑟夫环问题:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

    首先,我最大的学习来源不是百度而是我群友~~在这里表白一波我热爱学习的群友们!然后今天群里突然有人提出了题目的这个问题:有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人退出 ...

  4. POJ 3750 小孩报数问题 (线性表思想 约瑟夫问题 数组模拟运算的 没用循环链表,控制好下标的指向就很容易了)

    小孩报数问题 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10423   Accepted: 4824 Descripti ...

  5. Java数据结构之单向环形链表(解决Josephu约瑟夫环问题)

    1.Josephu(约瑟夫.约瑟夫环)问题: 设编号为1,2,… n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m ...

  6. 单向环形链表解决约瑟夫环(Josephus)问题

    一.约瑟夫环问题 Josephu 问题为:设编号为1,2,- n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m的那 ...

  7. tc 147 2 PeopleCircle(再见约瑟夫环)

    SRM 147 2 600PeopleCircle Problem Statement There are numMales males and numFemales females arranged ...

  8. C++ 约瑟夫环问题

    约瑟夫环比较经典了 已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到m的那个人出列:他的下一个人又从1开始报数,数到m的那个人又出列:依此规律重复下去,直 ...

  9. 约瑟夫环的java解决

    总共3中解决方法,1.数学推导,2.使用ArrayList递归解决,3.使用首位相连的LinkedList解决 import java.util.ArrayList; /** * 约瑟夫环问题 * 需 ...

随机推荐

  1. C and SQL data types for ODBC and CLI

    C and SQL data types for ODBC and CLI   This topic lists the C and SQL data types for ODBC and CLI a ...

  2. iOS 字符串删除 DOM

    iOS  string 删除 包含的 DOM NSMutableString *mutableString = [NSMutableString stringWithString:responseSt ...

  3. 【去除NSString 字符串中的空格换行符】

    @interface NSString (DeletWhiteSpace) // 返回一个去掉前后空格的字符串或者下划线,如果自己是一个nil 返回@“” - (NSString *)trimming ...

  4. 配置oozie4.10+hadoop2.5.2

    终于将这个神秘的寻象人 oozie 安装配置成功了,这个困扰我好几天, 当看到如下的画面, 我觉得值! 废话少说,看我如何编译和安装过程: (已经将hadoop2.5.2HA 的环境搭建起来了,hiv ...

  5. FOJ 2181 快来买肉松饼

    链接:http://acm.fzu.edu.cn/problem.php?pid=2181 思路:乍一看以为是并查集,仔细想了下又找不到让函数结束的条件,所以就看了其他人的搜索大法 #include ...

  6. 创建Unity3D的MacOS Plugin的正确姿势

    http://www.tedlindstrom.se/how-to-link-dylibs-into-unity3d/ I was roaming around the net looking for ...

  7. webrtc中APM(AudioProcessing module)的使用

    一,实例化和配置 AudioProcessing* apm = AudioProcessing::Create(0); //这里的0指的是channelID,只是一个标注那个通道的表示 apm-> ...

  8. selenium使用笔记(二)——Tesseract OCR

    在自动化测试过程中我们经常会遇到需要输入验证码的情况,而现在一般以图片验证码居多.通常我们处理这种情况应该用最简单的方式,让开发给个万能验证码或者直接将验证码这个环节跳过.之前在技术交流群里也跟朋友讨 ...

  9. Unity.Interception(AOP)

            在前面我们学习到的是Unity依赖注入(DI)与统一容器来松散耦合,这个设计已经对我们系统带来了很多的好处.但是我们还会想尝试和遵循单一职责,开放封闭原则.比如我们不应该在我们的Bus ...

  10. files list file for package 'xxx' is missing final newline

    #!/usr/bin/python # 8th November, 2009 # update manager failed, giving me the error: # 'files list f ...