码迷,mamicode.com
首页 > 其他好文 > 详细

51Nod1074 约瑟夫环 V2

时间:2019-07-23 14:51:24      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:using   namespace   cin   efi   main   algo   r++   题意   51nod   

题意

约瑟夫环,N-1e18,K-1000

思路

由于K远小于N,后面i大了之后某些时候不用取模,可以加速。

代码

#include<iostream>
#include<cstdio>
#include<cstdio>
#include<algorithm>
#define ll long long
using namespace std;
ll n,k;
ll cur,t;
int main(){
    cin>>n>>k;
    cur=0;
    for(ll i=2;i<=n;i+=t+1){
        t=(i-cur)/k-1;
        if(t<0) t=0;
        if(i+t+1>n) t=n-i;
        cur=(cur+(t+1)*k)%(i+t);
    } 
    cur++;
    cout<<cur<<endl;
    return 0;
}

51Nod1074 约瑟夫环 V2

标签:using   namespace   cin   efi   main   algo   r++   题意   51nod   

原文地址:https://www.cnblogs.com/sz-wcc/p/11231635.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!