Poj 3750 小孩报数问题

来源:互联网 发布:五子棋软件下载 编辑:程序博客网 时间:2024/04/29 22:04

又一次用模拟链表水过,和约瑟夫环一样.......所以不注释了。

代码:

#include <iostream>#include <algorithm>#include <cmath>#include <cstdio>#include <cstdlib>#include <cstring>#include <string>#include <vector>#include <set>#include <queue>#include <stack>#define MAX 1050#define INF 0x7FFFFFFF# define eps 1e-5using namespace std;struct Child{    char name[20];    int pre,next;} child[100];int main(){    int n,i,w,s;    scanf("%d",&n);    for(i=1; i<=n; i++)    {        cin >> child[i].name;    }    scanf("%d,%d",&w,&s);    child[1].pre = n;    for(i=2; i<=n; i++)    {        child[i].pre = i-1;    }    child[n].next = 1;    for(i=1; i<=n-1; i++)    {        child[i].next = i+1;    }    int num = 0;    while(child[w].next != w)    {        num++;        if(num == s)        {            num = 0;            cout << child[w].name << endl;            child[child[w].pre].next = child[w].next;            child[child[w].next].pre = child[w].pre;        }        w = child[w].next;    }    cout << child[w].name << endl;    return 0;}


原创粉丝点击