Hust oj 1548 基础数据结构——循环链表

来源:互联网 发布:mac redis可视化工具 编辑:程序博客网 时间:2024/06/05 16:16
基础数据结构——循环链表Time Limit: 1000 MSMemory Limit: 10240 KTotal Submit: 305(184 users)Total Accepted: 207(177 users)Rating: Special Judge: NoDescription

n个人想玩残酷的死亡游戏,游戏规则如下: 


n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,活到最后的一个人是胜利者。


请输出最后一个人的编号。

Input

输入n和m值。m>1。

Output

输出胜利者的编号。

Sample Input5 3

Sample Output4Hint

第一轮:3被杀第二轮:1被杀第三轮:5被杀第四轮:2被杀

 

讲道理就是一个循环链表。。我用队列做的

#include<cstdio>#include<iostream>#include<cstring>#include<queue>#include<algorithm>using namespace std;const int maxn = 1005;int vis[maxn];int a[maxn];int main(){    int n,m;    while(~scanf("%d%d",&n,&m))    {        queue<int>q;        for(int i=1;i<=n;i++)            q.push(i);        int cnt = 0;        while(q.size() > 1)        {            cnt++;            if(cnt == m)            {                q.pop();                cnt = 0;            }            else            {                q.push(q.front());                q.pop();            }        }        printf("%d\n",q.front());    }    return 0;}


 

0 0