uvaoj 1394 - And Then There Was One

题解:
1.约瑟夫环变形
2.倒着推:
最后剩一个人,如果把他编号为一号
然后推如果剩俩人,他是对应的几号
然后如果三人,这个人对应的几号。。。。
总结:
1.记得约瑟夫环问题,大一上思考了一个学期,大二上思考了半节课,现在思考了几分钟就推出来了,可能一个是我知道的知识多了,二是,我清楚为何要这么推了,这就是一个人解决问题的思路。所以,思考问题的方式很重要,养成一个好的思维模式很重要
2.发现与人合作的问题了,以前就不知道如何与人合作,总觉,啥都能自己做,但是现在想一想,只是自己太过自负,不愿意学习他人的长处,不愿意解决这个自己的缺点!我希望能慢慢学习与人合作,就像解决算法题一样,解决掉这个问题!

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
const int MAXN = 10005;
int d[MAXN];
int main()
{
    int n,k,m;
    while(cin >> n >> k >> m && n && k && m)
    {
        d[1] = 0;
        for(int i = 2;i < n;i++)d[i] = (d[i - 1] + k) % i;
        cout << (d[n - 1] + m) % n + 1 << endl;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值