POJ 3517 And Then There Was One( 约瑟夫环模板 )
生活随笔
收集整理的這篇文章主要介紹了
POJ 3517 And Then There Was One( 约瑟夫环模板 )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
鏈接:傳送門
題意:典型約瑟夫環問題
約瑟夫環模板題:n個人( 編號 1~n )在一個圓上,先去掉第m個人,然后從m+1開始報1,報到k的人退出,剩下的人繼續從1開始報數,求最后剩的人編號
/*************************************************************************> File Name: poj3517.cpp> Author: WArobot > Blog: http://www.cnblogs.com/WArobot/ > Created Time: 2017年05月10日 星期三 14時49分41秒************************************************************************/#include<cstdio> using namespace std;int Joseph(int n,int k,int m){int d , s = 0;for(int i = 2 ; i<= n ; i++) s = ( s + k ) % i;k %= n;if( k == 0 ) k = n;d = ( s + 1 ) + ( m - k );if( d >= 1 && d <= n ) return d;else if( d < 1 ) return d + n;else if( d > n ) return d % n; } int main(){int n,k,m;while(~scanf("%d%d%d",&n,&k,&m) , n||k||m ){printf("%d\n",Joseph(n,k,m));}return 0; }
轉載于:https://www.cnblogs.com/WArobot/p/6836360.html
總結
以上是生活随笔為你收集整理的POJ 3517 And Then There Was One( 约瑟夫环模板 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Xtrabackup的“流”及“备份压缩
- 下一篇: 理解Joomla!模板