poj 3750 小孩报数问题
2016-04-15 18:05
375 查看
小孩报数问题
Description
有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列(总人数不足S个时将循环报数),求小孩出列的顺序。
Input
第一行输入小孩的人数N(N<=64)
接下来每行输入一个小孩的名字(人名不超过15个字符)
最后一行输入W,S (W < N),用逗号","间隔
Output
按人名输出小孩按顺序出列的顺序,每行输出一个人名
Sample Input
Sample Output
Source
专门练了一下,双向循环链表,当然直接暴力也行;
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 12616 | Accepted: 5740 |
有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列(总人数不足S个时将循环报数),求小孩出列的顺序。
Input
第一行输入小孩的人数N(N<=64)
接下来每行输入一个小孩的名字(人名不超过15个字符)
最后一行输入W,S (W < N),用逗号","间隔
Output
按人名输出小孩按顺序出列的顺序,每行输出一个人名
Sample Input
5 Xiaoming Xiaohua Xiaowang Zhangsan Lisi 2,3
Sample Output
Zhangsan Xiaohua Xiaoming Xiaowang Lisi
Source
专门练了一下,双向循环链表,当然直接暴力也行;
#include<iostream> #include<cstring> #include<string> #include<cstdio> #include<stdlib.h> using namespace std; string s[65]; struct node { int x; node* front; node* rear; }; node* create(int n) { node *head,*temp; head=temp=new node; for(int i=2;i<=n;++i) { temp->rear=new node; temp->rear->front=temp; temp=temp->rear; } temp->rear=head; head->front=temp; return head; } node* move(node* p,int step) { for(int i=1;i<step;++i) { p=p->rear; //cout<<p->x<<endl; } return p; } node* remove(node* p) { p->front->rear=p->rear; p->rear->front=p->front; p=p->rear; return p; } int main() { int N; scanf("%d",&N); int W,S; node *head,*temp; head = temp = create(N); for(int i=1;i<=N;++i) { cin>>s[i]; temp->x=i; temp=temp->rear; } scanf("%d,%d",&W,&S); temp=move(head,W); while(temp->rear!=temp) { temp=move(temp,S); cout<<s[temp->x]<<endl; temp=remove(temp); } cout<<s[temp->x]<<endl; return 0; }
相关文章推荐
- mac date命令
- 学习RSA公开密钥算法
- 图解MapReduceMapReduce整体流程图
- generic_make_request函数初探
- atom-添加插件
- cocos2d-lua 下使用protobuffer
- oj-结构体成绩统计
- YUI api压缩 js/css
- Twisted之Deferred(二)
- 各种排序算法的分析及java实现
- 项目平台不同修改方法
- 诗
- socket 之PHP心得
- DISTINCT 列添加索引
- 计算两点之间的距离
- SQLite3初级使用
- JMS的规范,以及ActiveMQ中p2p和publish/subscriber2中模式
- RelativeLayout(Android)中实现控件平分屏幕
- 购买SSD固态硬盘须当心,你知道什么是SLC、 MLC、TLC闪存芯片颗粒吗?
- Ibatis的关联查询和关联结果