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; /** * 约瑟夫环问题 * 需 ...
随机推荐
- webuploader在IE8/9下上传遇到的两个问题
最近在做图片上传功能. 点击一个按钮,弹出一个iframe,它是百度的webuploader插件 在点击关闭按钮时,IE9下总是会报错: __flash__removeCallback未定义错误 解决 ...
- DatePicker 设置字体颜色
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #ffffff } span.s1 { } span.s2 { c ...
- css中“~”和“>”是什么意思?
css中"~"是: 为所有相同的父元素中位于 p 元素之后的所有 ul 元素设置背景: p~ul{ background:#ff0000; } <p>快乐生活&l ...
- C#中的扩展方法
扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型. 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用. 以上是msdn官网对扩展方 ...
- PHP AES的加密解密
AES加密算法 密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DE ...
- [项目]WebService涉及到的部分核心代码
前言: 博客园似乎不太喜欢设计模式的东西,一连写了几篇设计模式的东西,都没什么人气,也许是写的水平有些不够,另外设计模式属于内功,怎们都得修炼一下,否则,设计混乱,不成体系,对于大型项目来说,就会显 ...
- 在子线程更新主线程的UI组件
1.实例化一个 private Handler handlerBublishTopic = new Handler(Looper.getMainLooper()); 2. handlerBublish ...
- Android资源站
用这个帖子记录下看到的好的android资源站 1.各种资源:http://appxcode.com/ 2.图标 2.1 http://www.easyicon.net 2.2 http://www. ...
- 主成分分析 (PCA) 与其高维度下python实现(简单人脸识别)
Introduction 主成分分析(Principal Components Analysis)是一种对特征进行降维的方法.由于观测指标间存在相关性,将导致信息的重叠与低效,我们倾向于用少量的.尽可 ...
- Codeforces Round #345 (Div. 1) A. Watchmen
A. Watchmen time limit per test 3 seconds memory limit per test 256 megabytes input standard input o ...