poj3750 小孩报数问题
来源:互联网 发布:泰安知金复读学校 编辑:程序博客网 时间:2024/05/05 02:20
小孩报数问题
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 8929 Accepted: 4191
Description
有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列(总人数不足S个时将循环报数),求小孩出列的顺序。
Input
第一行输入小孩的人数N(N<=64)
接下来每行输入一个小孩的名字(人名不超过15个字符)
最后一行输入W,S (W < N),用逗号","间隔
接下来每行输入一个小孩的名字(人名不超过15个字符)
最后一行输入W,S (W < N),用逗号","间隔
Output
按人名输出小孩按顺序出列的顺序,每行输出一个人名
Sample Input
5XiaomingXiaohuaXiaowangZhangsanLisi2,3
Sample Output
ZhangsanXiaohuaXiaomingXiaowangLisi
题意在此就不解说了;而此题就是一个循环链表就可以搞定。这很类似于约瑟夫环的问题,唯一区别就在于本题是针对字符串,而约瑟夫环是对排列的数。
代码:
#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 __int64struct 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;}/*5XiaomingXiaohuaXiaowangZhangsanLisi2,3*/
- poj3750 小孩报数问题
- poj3750 小孩报数问题
- POJ3750 小孩报数问题【模拟】
- 北大ACM poj3750 小孩报数问题
- poj3750-小孩报数
- 北京大学ACM---poj3750---小孩报数问题(循环链表求解法)
- 小孩报数问题
- 小孩报数问题
- 小孩报数问题
- 小孩报数问题3750
- 小孩报数问题
- 小孩报数问题
- 小孩报数问题
- 小孩报数问题
- POJ 3750 小孩报数问题
- pku-3750 小孩报数问题
- Poj 3750 小孩报数问题
- poj 3750 小孩报数问题
- 数据库内连接、外连接(左连接、右连接、全连接)
- 线段树(一) _概述 基本操作
- lua string 库函数使用说明
- 探讨棋牌类游戏AI算法
- 中介者模式lua实现
- poj3750 小孩报数问题
- MFC单文档中修改窗口标题和标题栏图标
- addFrameScript
- iOS 多媒体(1)——音频的播放
- AI算法代码网址
- C语言之文件操作
- 将博客搬至CSDN
- 南阳理工OJ_ASCII码排序
- HDU 1010 Tempter of the Bone (DFS)