【约瑟夫模板】

来源:互联网 发布:java 动态链接库so 编辑:程序博客网 时间:2024/06/05 14:17

具体可以以选猴王为例 http://poj.grids.cn/practice/2746

这里mark一下这个模板。

#include <iostream>using namespace std;int last[400][400];void count_monkey(int n, int m){    if(n<=0)        return ;    int i,t;    last[1][0]=1;   for(i=2;i<=n;i++)   {        for(int j=0;j<n&&j<i-1;j++)//修改n值可输出最后n个        {            last[i][j]=(last[i-1][j]+m-1)%i+1;        }        if(i<=n) last[i][i-1]=(m-1)%i+1;//修改n值可输出最后n个   }}int main(){    int n,m;    while (scanf("%d%d",&n,&m))    {        if(!n&&!m)break;  count_monkey(n,m);        for(int i=0;i<n;i++)        printf("%d\n",last[n][i]);    }return 0;}