zoukankan      html  css  js  c++  java
  • hihocoder 1296 数论三·约瑟夫问题

    http://hihocoder.com/problemset/problem/1296

    /* ***********************************************
    Author        :devil
    Created Time  :2016/4/26 12:57:34
    ************************************************ */
    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    #include <vector>
    #include <queue>
    #include <set>
    #include <map>
    #include <string>
    #include <cmath>
    #include <stdlib.h>
    using namespace std;
    int solve(int n,int k)
    {
        if(n==1) return 0;
        if(n<k)
        {
            int ans=0;
            for(int i=2;i<=n;i++)
                ans=(ans+k)%i;
            return ans;
        }
        int ans=solve(n-n/k,k),tmp=n%k;
        if(ans<tmp) ans=ans-tmp+n;
        else ans=ans-tmp+(ans-tmp)/(k-1);
        return ans;
    }
    int main()
    {
        //freopen("in.txt","r",stdin);
        int t,n,k;
        scanf("%d",&t);
        while(t--)
        {
            scanf("%d%d",&n,&k);
            printf("%d
    ",solve(n,k));
        }
        return 0;
    }
  • 相关阅读:
    成熟失去快乐
    明天出发
    不知其期
    不是自己的机子就是不好
    都收拾完了
    文盲
    郁闷
    好像感冒了
    又都疯了
    流水账,从我开始接触计算机时写起
  • 原文地址:https://www.cnblogs.com/d-e-v-i-l/p/5434675.html
Copyright © 2011-2022 走看看