poj3750 小孩报数问题
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 8929 | Accepted: 4191 |
Description
Input
接下来每行输入一个小孩的名字(人名不超过15个字符)
最后一行输入W,S (W < N),用逗号","间隔
Output
Sample Input
5 Xiaoming Xiaohua Xiaowang Zhangsan Lisi 2,3
Sample Output
Zhangsan Xiaohua Xiaoming Xiaowang Lisi
题意在此就不解说了;而此题就是一个循环链表就可以搞定。这很类似于约瑟夫环的问题,唯一区别就在于本题是针对字符串,而约瑟夫环是对排列的数。
代码:
#include<iostream>
#include<fstream>
#include<iomanip>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
#include<cmath>
#include<set>
#include<map>
#include<queue>
#include<stack>
#include<string>
#include<vector>
#include<sstream>
#include<cassert>
using namespace std;
#define LL __int64
struct node {char a[20];struct node *rear;struct node *next;
};node* create(int n) {node *point,*head;head = point = new node;for(int i=2; i<=n; ++i) {point->next=new node;point->next->rear=point;point=point->next;}point->next=head;head->rear=point;return head;
}node* rmove(node* p,int step) {for(int i=1; i<step; ++i) {p=p->next;}return p;
}node* Delete(node *p) {p->rear->next = p->next;p->next->rear = p->rear;p = p->next;return p;
}int main() {int n,w,s;scanf("%d",&n);node *point,*head;head=point=create(n);for(int i = 1; i <= n; ++i) {scanf("%s",point->a);point =point->next;}// printf("head = %s\n",head->a);//printf("point = %s\n",point->a);scanf("%d,%d",&w,&s);point=rmove(head,w);//printf(" %s\n",point->a);while(point->next!=point) {point=rmove(point,s);printf("%s\n",point->a);point=Delete(point);}printf("%s\n",point->a);return 0;
}
/*5
Xiaoming
Xiaohua
Xiaowang
Zhangsan
Lisi
2,3*/
poj3750 小孩报数问题相关推荐
- POJ3750 小孩报数问题【模拟】
小孩报数问题 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14909 Accepted: 6647 Descripti ...
- POJ--3750 小孩报数问题
小孩报数问题 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12161 Accepted: 5572 Descripti ...
- C++ Poj3750 小孩报数问题
一.题目: http://poj.org/problem?id=3750 二.思路: 1.考虑存储方式:用字符数组存储小孩的名字,如name[65][20]; 2.解决报到尾时不足S,要回到开头从0开 ...
- pku 3750 小孩报数问题 解题报告
小孩报数问题 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3376 Accepted: 1597 Descriptio ...
- Java 小孩报数问题
小孩报数问题:有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列(总人数不足S ...
- B - 小孩报数问题
B - 小孩报数问题 有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列(总人 ...
- javastudy-43:小孩报数问题
43:小孩报数问题 描述 有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列( ...
- ZCMU-1474: 小孩报数问题(C语言)
1474: 小孩报数问题 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 473 Solved: 213 [Submit][Status][Web B ...
- POJ 3750 小孩报数问题(约瑟夫问题 水题 考验细节、编码能力)
原题 小孩报数问题 Time Limit: 1000MS Memory Limit: 65536K Description 有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S ...
最新文章
- 前途到底是网络工程还是程序设计
- 日常make 的小技巧
- 交叉编译 FLTK1.3.0
- [HIHO1323]回文字符串(区间dp)
- Error0---local variable S is accessed from within inner class; needs to be declared final
- Android学习笔记——Handler(二)
- 《C++ Primer 4th》读书笔记 第7章-函数
- dp - Google Code jam Qualification Round 2015 --- Problem B. Infinite House of Pancakes
- Vue之webpack之基本使用
- VNC viewer双击鼠标出发ctrl+c
- 用Python写了一个前端,轻轻松松实现前端梦
- Android ndk开发C调用C++
- Windows XP下用Modem发送传真(ZZ)
- 格林高斯斯托克斯 通量散度旋度
- 将视频的以flv格式转换mp4格式
- amis eureka_如何构建量身定制的amis来升级您的基础架构
- vue +springboot项目部署(nginx)
- 论文研读——机器人导航深度局部轨迹重规划与控制
- hostname命令的使用
- 手机如何测光照度_如何3分钟学会用手机的专业模式拍照?